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} ... ...>),所以把更新操作写在子组件内部,实际上好像很少有这样写法,虽然没报错,但是不知道这种写法会不会有什么问题?

阅读 2k
2 个回答

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题