我有一个外部(对组件),可观察对象,我想听取更改。当对象更新时,它会发出更改事件,然后我想在检测到任何更改时重新呈现组件。 使用顶级React.render这是可能的,但在一个组件中它不起作用(这有一定意义,因为render方法只返回一个对象)。 代码示例:
export default class MyComponent extends React.Component {
handleButtonClick() {
this.render();
}
render() {
return (
<div>
{Math.random()}
<button onClick={this.handleButtonClick.bind(this)}>
Click me
</button>
</div>
)
}
}
单击该按钮在内部调用this.render(),但这并不是实际导致渲染发生的原因(您可以看到这在行动中,因为{Math.random()}创建的文本不会更改)。但是,如果我只是调用this.setState()而不是this.render(),它可以正常工作。 所以我想我的问题是:React组件需要有状态才能重新渲染吗?有没有办法强制组件按需更新而不改变状态?
文档: https://facebook.github.io/react/docs/component-api.html