首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子onPress和父onPress的setState()

子onPress和父onPress的setState()
EN

Stack Overflow用户
提问于 2018-01-05 00:52:46
回答 1查看 404关注 0票数 0

我有一个在父级中有可触摸组件的子级,我想在按下可触摸组件时同时对子级和父级执行setState()。有没有好的方法来实现这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-05 01:04:56

如果数据同时影响子组件和父组件,那么应该将数据移动到父组件的状态,然后通过props向下传递给子组件。因此,在您的实例中,我建议将状态从子组件向上移动到父组件中。然后创建一个在父组件内部设置状态的函数,并通过props将该函数传递给子组件。

例如:

代码语言:javascript
复制
class ParentComponent extends React.Component {
  state = {
    isPressed: false
  }

  toggleIsPressed = () => {
    this.setState({ isPressed: !this.state.isPressed })
  }

  render(){
    return(
      <ChildComponent toggleIsPressed={this.toggleIsPressed} imPressed={this.state.imPressed} />
    )
  }
}


const ChildComponent = ({ toggleIsPressed, imPressed }) => {
  return(
    <button onClick={toggleIsPressed}>{ isPressed ? "I'm pressed" : "I'm not pressed"}</button>
  )
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48099975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档