두 구성 요소 SideNav 및 Dashboard (두 개는 서로 다른 js 파일에 있음)가 있습니다. SideNav는 필터로서 selectbox를 갖습니다. 대시 보드 구성 요소에서 사이드 바 구성 요소로 배열을 전달해야합니다. 이 배열은 선택 상자 (sidenav 구성 요소 내부에 있음)의 값으로 지정해야합니다.Reactjs - 한 구성 요소에서 다른 구성 요소로 상태 값 전달
class Dashboard extends Component {
constructor(props) {
super(props);
this.state = {viz:{},filterData:{}};
}
var data1= ['1','2','3'];
this.setState({data1: data1}, function() {
console.log(this.state.data1);
});
}
//Sidebar
class Sidebar extends Component {
constructor(props) {
super(props);
this.state = {
data: ['opt1','opt2']
};
}
handleClick(e) {
e.preventDefault();
e.target.parentElement.classList.toggle('open');
this.setState({data: this.state.data1}, function() {
console.log(this.state.data);
});
}
render() {
const props = this.props;
const handleClick = this.handleClick;
return (
<div className="sidebar">
<nav className="sidebar-nav">
<Nav>
<li className="nav-item nav-dropdown">
<p className="nav-link nav-dropdown-toggle" onClick={handleClick.bind(this)}>Global</p>
<ul className="nav-dropdown-items">
<li> Organization <br/>
<select className="form-control">
<option value="">Select </option>
{this.state.data.map(function (option,key) {
return <option key={key}>{option}</option>;
})}
</select>
당신이 몇 가지 코드를 공유 할 수 있을까요? – mersocarlin
더 좋은 방법은 상태를 들어 올린 다음 두 구성 요소에 소품으로 전달하는 것입니다. –
Shubham Khatri : 상태를 올리시겠습니까? u pls가 명확하게 설명 할 수 있습니까 – sudhashree