Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应:单击“从父组件更新子组件”_Javascript_Reactjs - Fatal编程技术网

Javascript 反应:单击“从父组件更新子组件”

Javascript 反应:单击“从父组件更新子组件”,javascript,reactjs,Javascript,Reactjs,我试图在另一个名为侧边栏的组件中单击一个数字时显示一个数据表。我有一个父组件ShowTable和两个子组件侧栏和表。然而,因为我在表中有componentDidMount,所以它只在第一次单击时显示表。在第二次单击时,表不会更改,因为它已经装入。有人知道我如何解决这个问题,以便每次单击都能重新加载表吗?那么,如何从父组件触发子组件中的函数,或者使用什么来代替componentDidMount?我尝试使用componentDidUpdate,这样每当道具发送新序列时,组件都会再次加载,但它会开始内

我试图在另一个名为侧边栏的组件中单击一个数字时显示一个数据表。我有一个父组件ShowTable和两个子组件侧栏和表。然而,因为我在表中有componentDidMount,所以它只在第一次单击时显示表。在第二次单击时,表不会更改,因为它已经装入。有人知道我如何解决这个问题,以便每次单击都能重新加载表吗?那么,如何从父组件触发子组件中的函数,或者使用什么来代替componentDidMount?我尝试使用componentDidUpdate,这样每当道具发送新序列时,组件都会再次加载,但它会开始内循环

功能手柄在显示表中选择:

handleSelect=(value)=>{
    this.setState( {serial: value, showComponent: true} )
    console.log(this.state.serial)
}
{this.state.showComponent ?
<Table s={this.state.serial}/>:
null 
}
在渲染显示表中:

handleSelect=(value)=>{
    this.setState( {serial: value, showComponent: true} )
    console.log(this.state.serial)
}
{this.state.showComponent ?
<Table s={this.state.serial}/>:
null 
}

提前谢谢

我不认为这是关于父母和孩子之类的,这只是关于在
componentdiddupdate
中编写正确的代码,从而防止无限循环。请在这里发布您以前的尝试,即导致循环的尝试。如果(this.props.s!=prevProps.s).如果您想“重新装载”组件,这就是方法。“单击”的工作原理与“showComponent”一样感谢您的两个答案!通过正确使用componentDidUpdate,我成功地解决了这个问题。