Javascript 将数据从子级传递到父级,React.js
我试图将数据从子组件传递到父组件。但是,在执行此操作时,我得到一个错误:Javascript 将数据从子级传递到父级,React.js,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我试图将数据从子组件传递到父组件。但是,在执行此操作时,我得到一个错误: 警告:setState(…):无法在现有状态转换期间更新(例如在渲染或其他组件的构造函数中)。渲染方法应该是道具和状态的纯函数;构造函数的副作用是一种反模式,但可以移动到componentWillMount 我不明白,因为当我对事件处理程序使用相同的模式时,一切都很好。如何才能成功地将数据从子组件传递到父组件,而不出现错误 const Child=(道具)=>{ let message='嗨,妈妈' props.call
警告:setState(…):无法在现有状态转换期间更新(例如在渲染或其他组件的构造函数中)。渲染方法应该是道具和状态的纯函数;构造函数的副作用是一种反模式,但可以移动到componentWillMount
我不明白,因为当我对事件处理程序使用相同的模式时,一切都很好。如何才能成功地将数据从子组件传递到父组件,而不出现错误
const Child=(道具)=>{
let message='嗨,妈妈'
props.callBackFromParent(消息);
返回{props.message}
};
类父类扩展了React.Component{
建造师(道具){
超级(道具)
此.state={
messageFromChild:“”,
}
this.callBackFromParent=this.callBackFromParent.bind(this);
}
callBackFromParent(dataFromChild){
this.setState({messageFromChild:dataFromChild})
}
render(){
返回(
来自孩子的信息是:
)
}
}
ReactDOM.render(
,
document.getElementById('root'))
);代码>
在渲染期间不允许调用setState
,调用props.callBackFromParent
会导致这种情况
您可以将该函数用作事件处理程序,它将按预期设置父级的状态
示例
const Child = (props) => {
let message = 'Hi mom';
return <h3 onClick={() => props.callBackFromParent(message)}>{props.message}</h3>
};
const Child=(道具)=>{
let message='嗨,妈妈';
返回props.callBackFromParent(message)}>{props.message}
};
不要粗鲁,但你的问题有点漏洞百出;这就像问为什么在街上开车可以,但在人行道上开车不可以。将组件定义为函数意味着该函数就是render
函数。React是基于事件的,render
不应该更改状态,这正是它的设计方式。详细说明:React调用render()
当状态更改时,因此如果render调用导致状态更改,您将有一个无限循环。