react更新状态问题.

请问这种更新方法会不会有什么问题

//子组件方法更新:
addItem=()=>{
    this.props.editList.push(1)
    this.setState({})
}
removeItem=()=>{
this.props.editList.splice(0,1)
this.setState({})
}
...
//父组件:
class{
...
render(){
 return <Child editList={this.state.list}>
}
}

我在重写代码时候,有很多这种修改props写法,当时就是不想让父组件挂太多方法像这样(<Child editList={this.state.list} addItem={this.addItem} ... ...>),所以把更新操作写在子组件内部,实际上好像很少有这样写法,虽然没报错,但是不知道这种写法会不会有什么问题?

阅读 2.1k
2 个回答

不是setState直接修改state不会重新渲染
所以你那样做只会重新渲染子组件 如果其他兄弟组件也用到了editList 则渲染有问题

this.state.list不牵扯到其他组件就没事。
你可以设置一个统一的changeList方法,父组件挂这一个方法就行了

推荐问题