reactjs – React:将子状态传递给父状态
我和React工作了一年多,我读过
Thinking in react,Lifting state up和
State and lifecycle.
我了解到React的数据流概??念是单向数据流. 来自这些页面的Citates:
据我所知,不允许使用以下示例,因为我将子状态数据传递给父级.但我看到一些开发人员这样工作: class Parent extends React.Component { constructor(props) { super(props); this.state = { fromParent: null }; } addSomething(stateValueFromChild) { this.setState({fromParent: stateValueFromChild}); } render() { return <Child addSomething={(stateValueFromChild) => this.addSomething(stateValueFromChild)}> // ... </Child>; } } class Child extends React.Component { constructor(props) { super(props); this.state = { fromChild: 'foo' }; } render() { return <Form onSubmit={() => this.props.addSomething(this.state.fromChild)}> // ... </Form>; } } 我现在的问题是: >这真的不允许吗?
这是允许的,你的代码没有任何问题,但是我不会把它称为从子节点传递到父节点.你所做的就是调用在props中传递的方法,并通过一些参数触发事件,在你的例子中是一个参数,但它可以是任何其他变量.父组件对此参数的性质一无所知,它只接收值并能够对其执行任何操作,例如将其自身状态更改为另一个.如果Child的状态将更改,则在没有再次触发onSubmit事件的情况下,Parent将不会收到此更新.但是,当道具发生变化时,孩子们总是从父母那里收到更新并自动获得重新渲染.当然,一些道具可能是一些父母的状态.这是行为的主要区别.
有一篇很好的文章详细解释了这一点:Props down,Events Up (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |