У меня есть внешний (для компонента) наблюдаемый объект, который я хочу прослушать для изменений. Когда объект обновляется, он испускает события изменения, а затем я хочу повторно перенести компонент, когда обнаружено какое-либо изменение.
С верхним уровнем 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()
, он отлично работает.
Итак, я думаю, мой вопрос: do React компоненты должны иметь состояние, чтобы переименовать? Есть ли способ заставить компонент обновляться по требованию без изменения состояния?