我有两个组件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