【问题标题】:Call a 'Fathers' function form a 'Children' component in ReactJS在 ReactJS 中调用 'Fathers' 函数形成一个 'Children' 组件
【发布时间】:2015-04-09 18:46:30
【问题描述】:

我有下一个组件“父亲”,它在 React js 中包含一个“孩子”组件。

var Father = React.createClass({
    render: function () {
        return (
            <div>
                <Children/>
            </div>
        );
    },
    onUpdate: function(state) {
        this.setState(state);
    } });

我想从孩子调用父亲的 onUpdate 函数,但不调用 'Children' 方法 'componentDidUpdate',因为我将该方法用于破坏我的应用程序的其他事情。

我该怎么做?

【问题讨论】:

    标签: javascript reactjs components


    【解决方案1】:

    在属性中传递它。如果您只需要更新特定部分并阻止您的孩子更新,请使用方法shouldComponentUpdate

    var Father = React.createClass({
      render: function () {
        return (
            <div>
                <Children onUpdateCallback={this.onUpdate}/>
            </div>
        );
      },
      onUpdate: function(state) {
        this.setState(state);
      }
    });
    
    var Child = React.createClass({
      render: function () { ... },
    
      shouldComponentUpdate: function (prevProps, prevState) { ... return false}
    });
    

    如果您的孩子不能/不应该在父母更新时更新,我认为您可能做错了什么,但祝您好运。

    【讨论】:

    • 看起来不错,但我有两个问题: 1. 我什么时候调用父亲的 onUpdate 函数,我必须在 shouldComponentUpdate 函数中做什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    相关资源
    最近更新 更多