【发布时间】:2018-05-07 13:25:04
【问题描述】:
class App extends Component {
constructor() {
super();
this.state = {
name: 'React'
};
this.setState=this.setState.bind(this)
}
render() {
return (
<div>
<Hello name={this.state.name} />
<p>
Start editing to see some magic happen :)
</p>
<Child {...this}/>
</div>
);
}
}
child Component
var Child=(self)=>{
return(
<button onClick={()=>{
self .setState({
name:"viswa"
})
}}>Click </button>
)
这里我绑定了 setState 函数并将其作为 props 发送给子组件。这将改变父组件的状态。这是正确的方法吗?
【问题讨论】:
-
最好传递一个父函数来改变状态。
-
但这比传递函数简单。如果我想改变很多状态变化。与传递函数相比,这将是一种简单快捷的方式吗?@yBrodsky
-
我对反应只有理论经验。但我从来没有见过这个。他们一直在传递函数。
-
@yBrodskyYeah。我只是试试这个。它也在工作。我想不会有任何错误。如果我还是喜欢这个,谢谢
-
我强烈反对这种方法。虽然它会起作用,但这样做是非常反模式的。无论如何,您可能需要
this的唯一东西是state。因此,与其传递整个实例,不如传递一个让您完全控制状态的函数。
标签: javascript reactjs function setstate react-props