冉冉說
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貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個贊
如果要從React外部調(diào)用組件上的函數(shù),可以在renderComponent的返回值上調(diào)用它們:
var Child = React.createClass({…});
var myChild = React.renderComponent(Child);
myChild.someMethod();
在React之外獲取React Component實(shí)例的句柄的唯一方法是存儲React.renderComponent的返回值。

慕森王
TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個贊
或者,如果Child上的方法是真正靜態(tài)的(不是當(dāng)前道具,狀態(tài)的乘積),則可以對其進(jìn)行定義statics,然后像靜態(tài)類方法一樣對其進(jìn)行訪問。例如:
var Child = React.createClass({
statics: {
someMethod: function() {
return 'bar';
}
},
// ...
});
console.log(Child.someMethod()) // bar
添加回答
舉報
0/150
提交
取消