我想出了两个解决方案,但他们都没有感觉到.
第一解决方案
state.input.onChange在P中创建一个函数,它接收一个事件并设置state.input.onChange给C1作为a props,让C1绑定this.props.onChange到onChangeFoo.这有效.每当Foo的值改变时,它会触发一个setStateP,所以P将输入传递给C2.
但由于同样的原因,它感觉不太正确:我正在从子元素设置父元素的状态.这似乎背叛了React的设计原则:单向数据流.
这是我应该怎么做的,还是有更多的React-natural解决方案?
二解决方案:
把Foo放在P.
但是,当我构建我的应用程序时,我应该遵循这个设计原则 - 将所有表单元素放入render最高级别的类中吗?
就像在我的例子中,如果我有一个大的C1渲染,我真的不想把整个renderC1放到renderP只是因为C1有一个表单元素.
我该怎么办?
reactjs ×1