私はReduxとReact Nativeのような機能を作りました。私は初期状態posts = []
と私の減速で減速が投稿を取る、好き嫌いをするRedux還元剤
const initialState = {
posts: []
};
function postReducer(state = initialState, action) {
switch (action.type) {
case FETCH_POSTS:
return {
...state,
posts: action.posts
};
case LIKE_POST:
return {
...state,
posts: state.posts.map(post => {
if (post._id === action.postId) {
return {
...post,
likes: !!post.likes ? post.likes.concat(action.userId) : [action.userId]
}
}
return post;
})
};
case UNLIKE_POST:
return {
...state,
posts: state.posts.map(post => {
if (post._id === action.postId) {
return {
...post,
likes: post.likes.filter(userId => userId !== action.userId)
}
}
return post;
})
};
default:
return state
}
};
のように見えてきた
私は私の状態でposts
配列を変異させることができないことを知っているので、私は、私の記事の新しい配列を返す必要がユーザーが好き/好きではないようにしようとする投稿を変更しました。
非常にうまくいくようですが、それは遅いです。私は唯一の記事がほとんどありませんが、私はそれが目に見えるようにするためにまだ1秒ほど待たなければなりません。
これは正しいアプローチですか?州の単純な配列として投稿を正しく保存していますか?私は代替策が何であるかは分かりませんが、例えば、このGitHub repoに見られるように、私はそれの構造を完全には理解していませんが、別の方法で行うことができます。
あなたが「見えるようにするなどのために秒かかる」と言うとき:あなたはベンチマークのいずれかの種類をやって試してみましたか?減速機がそのくらいの時間を取っているとは思わないでしょう。遅延を引き起こしていることをよりよく知るために役立つでしょうか。そうでない場合、コードは正しく表示されます。 – markerikson