javascriptでの割り当てとマージの違いを十分に理解しているかどうかは疑問です。以下の減速は、状態を更新するたびに、私はエラーが消え、別の方法でnewKeyframesを計算する場合、私は、しかしEncountered two children with the same key
エラー同じキーの子供:Object.assign vs _.merge
function updateKeyframes(state, action) {
const { keyframeIds, props } = action.payload;
const newKeyframes = _.map(keyframeIds, function(id) {
return _.merge(state.keyframes[id], props);
});
return Object.assign({}, state, {
keyframes: Object.assign({}, state.keyframes, newKeyframes)
});
}
を取得します。
const newKeyframes = keyframeIds.reduce((memo, keyframeId) =>
Object.assign({}, memo, {
[keyframeId]: Object.assign({}, state.keyframes[keyframeId], props)
}), {});
なぜですか?ここで何が起こっているのですか?
'_.merge'は再帰的です。データを表示しないと、違いを確認するのは難しいです。また、オブジェクトの '_.map'はあなたが期待するものとは非常に異なるものです。値を '配列'にマップします。つまり、あなたの 'id'は' id 'でもなく、結果はオブジェクトではなく配列です。 – Sulthan
あなたは正しいです、助けてくれてありがとう。 state.keyframesを配列ではなくオブジェクトに設定したかったのです。 –