为了账号安全,请及时绑定邮箱和手机立即绑定

如何从ReactJS的“外部”访问组件方法?

如何从ReactJS的“外部”访问组件方法?

冉冉说 2019-12-13 09:47:47
为什么我不能从ReactJS的“外部”访问组件方法?为什么不可能,有什么办法解决呢?考虑一下代码:var Parent = React.createClass({    render: function() {        var child = <Child />;        return (            <div>                {child.someMethod()} // expect "bar", got a "not a function" error.            </div>        );    }});var Child = React.createClass({    render: function() {        return (            <div>                foo            </div>        );    },    someMethod: function() {        return 'bar';    }});React.renderComponent(<Parent />, document.body);
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

如果要从React外部调用组件上的函数,可以在renderComponent的返回值上调用它们:


var Child = React.createClass({…});

var myChild = React.renderComponent(Child);

myChild.someMethod();

在React之外获取React Component实例的句柄的唯一方法是存储React.renderComponent的返回值。


查看完整回答
反对 回复 2019-12-13
?
慕森王

TA贡献1777条经验 获得超3个赞

或者,如果Child上的方法是真正静态的(不是当前道具,状态的乘积),则可以对其进行定义statics,然后像静态类方法一样对其进行访问。例如:


var Child = React.createClass({

  statics: {

    someMethod: function() {

      return 'bar';

    }

  },

  // ...

});


console.log(Child.someMethod()) // bar


查看完整回答
反对 回复 2019-12-13
  • 3 回答
  • 0 关注
  • 1398 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信