我有兩個組件SideNav和儀表板(兩個在不同的js文件中)。 SideNav將有選擇框作爲過濾器。我必須將數組從Dashboard組件傳遞到Sidebar組件。該數組必須作爲選擇框(位於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:提升狀態?你可以解釋清楚 – sudhashree