如何从旧的遗留 jQuery 汤代码更改 React 组件的状态?
我有一个这样的组件:
var AComponent = React.createClass({
getInitialState: function() {
return { ids: [] }
},
render: function() {
...
},
onButtonClick: function() {
ids.splice(…); // remove the last id
}
});
当旧的 jQuery 汤代码中发生特殊情况时,我想将 id 推送到AComponent.state.ids
. 我怎样才能做到这一点?
一个“明显”的解决方案是反模式;这里是:
var componentInstance = AComtonent({});
React.renderComponent(componentInstance, document.getElementById(...));
// Somewhere else, in the jQuery soup. Something special happens:
componentIntance.state.ids.push(1234);
componentIntance.setState(componentInstance.state);
根据这封来自 Facebook 开发人员的电子邮件,这是一个反模式,因为他写的componentInstance
可能会被 React 破坏。