1
私は私がリストにドスをクリックすると、一度に選択された一つのtodo持つことができますthe following appがあります。私は新しいTODOを選択すると、ドスのリスト全体を再レンダリングされ選択を解除して選択したアイテムのみをMobXで再レンダリングする方法は?
class State {
@observable todos = [
{ id: '1', description: 'Do this' },
{ id: '2', description: 'Do that' },
{ id: '3', description: 'Do this third thing' }
]
}
const state = new State();
const TodoView = observer(({ todo, isSelected, onClick }) => (
<div onClick={onClick}>
{ todo.description } { isSelected && ' (selected)' }
</div>
));
@observer
class App extends Component {
@observable selected = null;
render() {
return <div>
{ state.todos.map((todo) =>
<TodoView
key={todo.id}
todo={todo}
isSelected={this.selected === todo}
onClick={() => this.selected = todo} />
)}
</div>;
}
}
を。追加のデータで状態を混乱させることなく、選択済みの選択解除されたtodosをただ再レンダリングする方法はありますか?代わりに、すべてのTodoView
が依存している、あなたが観察map
を使用し、各TodoView
に観察するために独自のキーを与えることができApp
コンポーネントで観測可能selected
を持つの