Dan*_*mov 2 javascript reactjs
根据我的理解,道具意味着由父设置,而状态意味着对组件是私有的.
this.state是组件的私有,可以通过调用this.setState()来更改.更新状态后,组件将重新呈现自身.
父组件不应该永远调用setState其子组件.它是否正确?
想象一下,父母<Form>在提交时有一些验证机制,并希望传递所有<FormInput>的验证错误.它应该通过道具来做,还是可以召唤setState孩子?
最后,在子组件上调用任何东西是一种好习惯吗?
考虑这种方法:
validate: function () {
var hasError = false;
React.Children.forEach(this.props.children, function(child) {
if (child.validate) {
hasError = hasError || child.validate();
}
});
return !hasError;
}
Run Code Online (Sandbox Code Playgroud)
它有效,但我不确定鸭子打字的方法是React的方法.
你怎么看?
这不是一个好主意.
使用验证示例,虽然如果您的表单有一些直接的子组件,它会起作用,如果您想验证一个内部的字段<div>怎么办?他们不会是直接的孩子,所以现在你的逻辑限制了你的标记.
实现目标的一种方法是通过给出一个特殊的对象,让孩子完全控制父母所需的状态.React有一个内置的例子:ReactLink和LinkedStateMixin.
您可以采用相同的想法并将其应用于验证.
| 归档时间: |
|
| 查看次数: |
3111 次 |
| 最近记录: |