更新父级的通常解决方案是将方法从父级传递给子级,然后从子级使用props.method
。但是,在我的情况下,父类变得太大了,所以我想知道这样做有什么缺点吗?
<input value={message.sometext}
onChange={(e) => {
message.sometext = e.target.value;
self.props.forceUpdate();
}}/>
?
通过使用此方法,我可以将逻辑移到孩子身上,并使父母更苗条。还是强制更新整个状态不是一个好主意?为什么或者为什么不?我是React的新手,很抱歉遇到一个可能很愚蠢的问题。非常感谢。
答案 0 :(得分:0)
否,强制对子项进行更新不会触发对父项的更新。 forceUpdate
仅在您读取render
或state
以外的props
中的值时使用,因为这种情况发生时,React不知道何时触发更新,但这不是一个好主意,您应该始终仅读取state
或props
,以避免不可预测的行为。您既可以集中状态(使用Redux
或类似的方法),也可以使子组件变为有状态(通常不是很好的想法),也可以将父级的updater函数传递给子组件(虽然不漂亮,但效果很好)。