在React中重新渲染子组件或更改子状态

萨基斯·阿鲁蒂尼安(Sarkis Arutiunian)

例如,我们有一个组件(这是一个孩子):

class Child extends React.Component {
    constructor(props) {
        super(props);
        this.state = {show: props.show || false};
        this.close = this.close.bind(this);
        this.open = this.open.bind(this);
    }   
    close() {
        this.setState({show: false});
    }

    open() {
       this.setState({show: true});
    }
    render() {
        return (
            <div>
                <Button onClick={this.open}>Open</Button>
                <Modal show={this.state.show} onHide={this.close}>
                    .........
                        <Button onClick={this.close}>Close</Button>
                </Modal>
            </div>
        );
    }
}

我们有父母部分:

class Parents extends React.Component {
    constructor(props) {
        super(props);
        this.state = {show: false};
        this.open = this.open.bind(this);
    }
    open() {
        this.setState({show: true});
    }
    render() {
        return (
            <div>
                <Button onClick={this.open}>open</Button>
                <Child show={this.state.show}/>
            </div>
        )
    }
}

所以我只希望能够从父母那里打开情态元素,然后能够从孩子那里改变相同的孩子状态。我试着使用componentWillReceiveProps(),也是我使用NPM包:react-komposer但是在这种情况下,这些都没有帮助。我还考虑过用新的道具重新渲染子组件,但是我不能从父组件重新渲染它。

知道我们如何用子状态进行操作吗?

安德烈·杨(AndréYoung)

如果要更改父级组件中的模态状态,则应在那里(在父级组件上)对其进行处理。Child这种情况下可以是无状态的部件,其从父调用的功能。有没有理由不这样做呢?

例如:

<Button onClick={props.open}>Open</Button>
<Modal show={props.show} onHide={props.close}>
       .........
       <Button onClick={props.close}>Close</Button>
</Modal>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当父状态在React中更改时停止渲染子组件

来自分类Dev

当RN 0.61中的状态更改时,如何从主组件中重新渲染子组件?

来自分类Dev

React / react钩子:状态更改后子组件是否未重新渲染?

来自分类Dev

状态更改后,React不重新渲染,我该如何设置子组件的setState?

来自分类Dev

在重新渲染父组件时,React如何重用子组件/保持子组件的状态?

来自分类Dev

当父状态改变时,如何更新(重新渲染)React中的子组件?

来自分类Dev

当react js中的任何状态发生变化时,如何停止重新渲染子组件?

来自分类Dev

数组属性更改时,React子组件不会重新渲染

来自分类Dev

从React中的子组件更改父状态(无Redux)

来自分类Dev

React组件没有使用相同的道具重新渲染,但是子状态发生了变化

来自分类Dev

更改 reactJs 父组件中的状态不会更改 react 子组件中的道具

来自分类Dev

在 React 中渲染动态子组件

来自分类Dev

react native:如何在状态更改时停止子组件的重新呈现?

来自分类Dev

子组件在每个状态更改时都重新呈现

来自分类Dev

从数组映射时,React子组件不会重新渲染

来自分类Dev

子组件更新时,React不重新渲染

来自分类Dev

当 prop 改变值时,React 子组件会重新渲染

来自分类Dev

React-无法使用容器组件中定义的功能更改子组件的状态

来自分类Dev

单击带有React JS中特定键的子组件时更改父组件的状态

来自分类Dev

React组件正在重新渲染从状态中移除的项目

来自分类Dev

当className更改时,React子级重新渲染

来自分类Dev

ReactJS:更改子组件的状态

来自分类Dev

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

来自分类Dev

更改存储状态后重新渲染组件

来自分类Dev

状态更改不重新渲染组件

来自分类Dev

来自子组件的事件处理程序设置状态不会重新渲染父组件

来自分类Dev

React JSX:父组件的重新渲染重新安装子组件是否正常?

来自分类Dev

从动态创建的子组件更改状态-React

来自分类Dev

React:子组件未在父状态更改时呈现

Related 相关文章

  1. 1

    当父状态在React中更改时停止渲染子组件

  2. 2

    当RN 0.61中的状态更改时,如何从主组件中重新渲染子组件?

  3. 3

    React / react钩子:状态更改后子组件是否未重新渲染?

  4. 4

    状态更改后,React不重新渲染,我该如何设置子组件的setState?

  5. 5

    在重新渲染父组件时,React如何重用子组件/保持子组件的状态?

  6. 6

    当父状态改变时,如何更新(重新渲染)React中的子组件?

  7. 7

    当react js中的任何状态发生变化时,如何停止重新渲染子组件?

  8. 8

    数组属性更改时,React子组件不会重新渲染

  9. 9

    从React中的子组件更改父状态(无Redux)

  10. 10

    React组件没有使用相同的道具重新渲染,但是子状态发生了变化

  11. 11

    更改 reactJs 父组件中的状态不会更改 react 子组件中的道具

  12. 12

    在 React 中渲染动态子组件

  13. 13

    react native:如何在状态更改时停止子组件的重新呈现?

  14. 14

    子组件在每个状态更改时都重新呈现

  15. 15

    从数组映射时,React子组件不会重新渲染

  16. 16

    子组件更新时,React不重新渲染

  17. 17

    当 prop 改变值时,React 子组件会重新渲染

  18. 18

    React-无法使用容器组件中定义的功能更改子组件的状态

  19. 19

    单击带有React JS中特定键的子组件时更改父组件的状态

  20. 20

    React组件正在重新渲染从状态中移除的项目

  21. 21

    当className更改时,React子级重新渲染

  22. 22

    ReactJS:更改子组件的状态

  23. 23

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

  24. 24

    更改存储状态后重新渲染组件

  25. 25

    状态更改不重新渲染组件

  26. 26

    来自子组件的事件处理程序设置状态不会重新渲染父组件

  27. 27

    React JSX:父组件的重新渲染重新安装子组件是否正常?

  28. 28

    从动态创建的子组件更改状态-React

  29. 29

    React:子组件未在父状态更改时呈现

热门标签

归档