如何从子组件更改父组件的状态?

尼古拉斯·海利(Nicholas Haley)

我有一个具有布尔状态属性“ showModal”的父组件。当showModal为true时,我呈现子组件“ Modal”。该模式具有关闭按钮,该按钮应将“ showModal”属性切换回false。“ showModal”作为prop传递给子Modal组件,但是由于prop在React中是不可变的,因此我还没有找到更改它的正确模式。

我可以使用某种双向数据绑定吗?处理此问题的最佳方法是什么?

库玛尔

这是您的操作方法。这是JSBin的工作示例:https ://jsbin.com/yixano/2/edit ? html,js,output

var ModalParent = React.createClass({
  getInitialState: function() {
    return {showModal: false};
  },

  toggleShowModal: function() {
    this.setState({showModal: !this.state.showModal});
  },

  render: function() {
    return (
      <div>
        <button type="button" onClick={this.toggleShowModal.bind(this)}>Toggle Show Modal</button>
        {this.state.showModal ? 
            <Modal onModalClose={this.toggleShowModal.bind(this)}/> : 
            <div></div>}
        <h4>State is: </h4>
        <pre>{JSON.stringify(this.state, null, 2)}</pre>
      </div>);
  }
});

var Modal = React.createClass({
  render: function(){
    return <div><button type="buton" onClick={this.props.onModalClose}>Close</button></div>
  }
});

ReactDOM.render(<ModalParent/>, document.getElementById("app"));

这里的想法是将对ModalParent上的函数的引用传递给Modal,以便可以根据子级中的操作来更改父级中的状态。

如您所见,该子项有一个名为“ onModalClose”的道具,它需要一个函数引用,该函数引用是在单击关闭按钮时被调用的。在父级中,我们将相应的toggleShowModal绑定到此onModalClose属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从子组件更改父组件的状态?

来自分类Dev

如何从子组件更改父组件的变量

来自分类Dev

如何从子组件更改父数据?

来自分类Dev

如何将状态从子组件传递到父组件?

来自分类Dev

尝试从子组件React Hooks更改父级中的状态

来自分类Dev

从子组件更改父状态不起作用

来自分类Dev

从子组件更改父组件中的状态,然后将该状态作为属性传递,并在子组件中更改状态

来自分类Dev

如何将数据从子组件(子组件有自己的状态)传递给父组件?

来自分类Dev

ReactJS从子组件修改父状态

来自分类Dev

如何从功能组件的父级更改子状态组件

来自分类Dev

从子组件(Tab Navigator)更新父组件的状态

来自分类Dev

使用UseState React Hook从子组件更新父组件状态

来自分类Dev

将状态从子组件更新到父组件

来自分类Dev

从子组件(Tab Navigator)更新父组件的状态

来自分类Dev

如何从子组件在父组件中渲染路线组件

来自分类Dev

如何从子组件向父组件发送价值?(功能组件)

来自分类Dev

状态更改后从子组件重新渲染

来自分类Dev

在 vue.js 中从子组件更改父组件

来自分类Dev

从子级更改父级状态(两者均为功能组件)

来自分类Dev

如何从子组件更新父变量

来自分类Dev

如果父状态值更改,如何更新子组件

来自分类Dev

如何从子组件调用父组件中的事件?

来自分类Dev

如何在Angular 9中从子组件访问父组件

来自分类Dev

如何将值从子组件传递到父组件

来自分类Dev

如何根据条件从子组件向父组件发送值?

来自分类Dev

如何设置子组件的子组件的父组件状态

来自分类Dev

如果子组件是动态组件,如何将数据从子组件传递给父组件

来自分类Dev

子组件更新时更改父状态

来自分类Dev

父状态更改后,组件不会更新

Related 相关文章

  1. 1

    如何从子组件更改父组件的状态?

  2. 2

    如何从子组件更改父组件的变量

  3. 3

    如何从子组件更改父数据?

  4. 4

    如何将状态从子组件传递到父组件?

  5. 5

    尝试从子组件React Hooks更改父级中的状态

  6. 6

    从子组件更改父状态不起作用

  7. 7

    从子组件更改父组件中的状态,然后将该状态作为属性传递,并在子组件中更改状态

  8. 8

    如何将数据从子组件(子组件有自己的状态)传递给父组件?

  9. 9

    ReactJS从子组件修改父状态

  10. 10

    如何从功能组件的父级更改子状态组件

  11. 11

    从子组件(Tab Navigator)更新父组件的状态

  12. 12

    使用UseState React Hook从子组件更新父组件状态

  13. 13

    将状态从子组件更新到父组件

  14. 14

    从子组件(Tab Navigator)更新父组件的状态

  15. 15

    如何从子组件在父组件中渲染路线组件

  16. 16

    如何从子组件向父组件发送价值?(功能组件)

  17. 17

    状态更改后从子组件重新渲染

  18. 18

    在 vue.js 中从子组件更改父组件

  19. 19

    从子级更改父级状态(两者均为功能组件)

  20. 20

    如何从子组件更新父变量

  21. 21

    如果父状态值更改,如何更新子组件

  22. 22

    如何从子组件调用父组件中的事件?

  23. 23

    如何在Angular 9中从子组件访问父组件

  24. 24

    如何将值从子组件传递到父组件

  25. 25

    如何根据条件从子组件向父组件发送值?

  26. 26

    如何设置子组件的子组件的父组件状态

  27. 27

    如果子组件是动态组件,如何将数据从子组件传递给父组件

  28. 28

    子组件更新时更改父状态

  29. 29

    父状态更改后,组件不会更新

热门标签

归档