React todomvc 1からわかるように、UI がモデルに合わせて最新の状態に保たれるようにする 1 つの方法は、UI がすべての変更でレンダリングされるように、(以下に示すように) モデルを render 関数にサブスクライブさせることです。
function render() {
React.render(
<TodoApp model={model}/>,
document.getElementById('todoapp')
);
}
model.subscribe(render);
render();
アプリで React ルーターを使用する場合、このデモで示されているように、React.render 呼び出しをルーターでラップする必要があります。
Router.run(routes, function (Handler) {
React.render(<Handler/>, document.getElementById('example'));
});
では、モデルも更新する必要がある場合、Router をどのように使用しますか? React.render
つまり、ルーターとfunction render
?の両方をラップする方法です。これにより、スコープに問題が生じます
function render() {
Router.run(routes, function (Handler) {
React.render(
<TodoApp model={model}/>,
document.getElementById('todoapp')
);
});
}
model.subscribe(render);
render();