gpt4 book ai didi

reactjs - 如何在react.js中使用setProps

转载 作者:行者123 更新时间:2023-12-03 13:17:06 24 4
gpt4 key购买 nike

我想从 myComponent 外部调用 setProps,以便能够动态更改 myComponent 的数据。
我希望在更改组件的 Prop 后,它将重新渲染自身。

我正在尝试以下操作:

var myComponent = React.createClass({
render: function () {
return (
React.DOM.div(null, this.props.data)
);
}
});

React.renderComponent(
myComponent({ data: someData }),
document.getElementById('predictionContent')
);

myComponent.setProps({data: someData2});

问题是我不明白如何为组件使用 setProps 。就我而言,我收到“未定义”错误。

如何解决这个问题?

最佳答案

警告: setPropsnow deprecated .

React.createClass返回一个类,它是React.renderComponent它返回具有 setProps 的类的实例方法。

试试这个:

var MyComponent = React.createClass({
render: function () {
return React.DOM.div(null, this.props.data);
}
});

var myComponent = React.renderComponent(
new MyComponent({ data: someData }),
document.getElementById('predictionContent')
);

myComponent.setProps({ data: someData2 });

话虽如此,Chad Scira 的答案也是正确的:重新渲染可能比调用 setProps 更好。这将使其看起来与 render() 方法内的代码相同,并且您始终可以调用 renderComponent ,无论是第一次还是后续更新。

像这样:

var MyComponent = React.createClass({
render: function () {
return React.DOM.div(null, this.props.data);
}
});

React.renderComponent(
new MyComponent({ data: someData }),
document.getElementById('predictionContent')
);

// later
React.renderComponent(
new MyComponent({ data: someData2 }),
document.getElementById('predictionContent')
);

关于reactjs - 如何在react.js中使用setProps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25139388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com