reactjs将子状态解析为父状态

时间:2018-08-22 11:19:39

标签: javascript reactjs

我想将数据从子级解析为父级,我有尝试解决问题的方法

How to parse data from child to parent using reactjs?

我打印该状态,显示的是前一个动作的状态,而不是上一个动作的状态

我尝试实现此功能以根据所单击的菜单显示内容 例: 我有3个菜单 - 一种 -B -C

当我第一次单击菜单时,例如A。控制台中的状态为”,然后第二次单击B时,控制台中的状态为A

这是我的代码

父母

g = sns.lmplot(x="release", y=variable, hue=hue, data=data, fit_reg=False)

current_palette = sns.color_palette()

medians = data.groupby([hue]).median()[variable].tolist()

for i in range(len(medians)):
    g.ax.axhline(medians[i], c=current_palette[i])

孩子

changeMenu= (menu) =>{
    this.setState({
        menu: menu
    });
    console.log('menu',menu);  // Show State
}

render(){
    return (
        <LeftMenuMycommission active="0" menu = {(value) => this.changeMenu(value)}/>

有人可以帮我发现问题吗?

任何帮助,谢谢您:)

1 个答案:

答案 0 :(得分:1)

It's not guaranteed that state is updated immediately.,您需要使用回调函数,然后调用父方法以将子组件状态正确地传递给父组件:

menuClick = (menu_name, active) =>{
    this.setState({
        menu: menu_name,
    }, () => {
     this.props.menu(this.state.menu); 
    })
}

或者,componentDidUpdate将执行相同的工作:

componentDidUpdate() {
  this.props.menu(this.state.menu) // only called after component is updated
}