Angular2とReduxを使用して新しいプロジェクトを開始しています。
不変オブジェクトとして、状態が変更されると、新しいオブジェクトが作成され、Angular はすべての DOM を再描画します。アクションが入力要素によってディスパッチされた場合、フォーカスは失われます。
動作を再現するためにサンプル plunk をフォークしました: http://plnkr.co/yb53ij
実際のアプリでは、フォーム API の「.debounceTime()」を使用しましたが、これはユーザー エクスペリエンスに適していないようです。これを回避する方法はありますか、それとも何か不足していますか?
レデューサーコード:
export const todos = (state = [{text: 'Edit my input...'}], {type, payload}) => {
switch(type){
case ADD_TODO: ...
case UPDATE_TODO: ...
case COMPLETE_TODO: ...
case DELETE_TODO: ...
case 'REPEAT_TODO':
// Creates new state:
return state.map(todo => {
return todo.id !== payload.todo.id ?
todo :
Object.assign({}, todo, {times: payload.times})
});
default:
return state;
}
ありがとうございました!