がOK、Imは学習目的のためのシンプルなToDoリストアプリを構築し、Imは私が解決することはできません警告が直面していると発生しました2人の子供Doneとしてエラーがスローされます。私はキーを各要素のインデックスとして設定しようとしましたが、警告は停止しましたが、リストが更新されると複製された要素がレンダリングされました。警告:flattenChildren(...):</p> <p>を私はToDoリストをチェックすると:同じキー
HERESに私のコンポーネント:
import React from "react";
import TodoTask from "./TodoTask";
const TodoList = ({todos, onTaskCheck}) => {
function renderList() {
return (
todos.map((todo) => {
return <TodoTask key={todo.id} todo={todo} onTaskCheck={onTaskCheck} />
})
);
}
return (
<div>
<h1 className="title is-4">ToDo List</h1>
<ul className="task-list">
{renderList()}
</ul>
</div>
);
};
export default TodoList;
HERESに減速:
export default function TodoReducers(state = [], action) {
switch(action.type) {
case "LIST_TODOS":
return [
{id: 1, description: "Task 1", isCompleted: true},
{id: 2, description: "Task 2", isCompleted: true},
{id: 3, description: "Task 3", isCompleted: true},
{id: 4, description: "Task 4", isCompleted: false},
{id: 5, description: "Task 5", isCompleted: false}
];
case "CHECK_TODO":
return [...state, Object.assign({}, action.payload, action.payload.isCompleted = true)];
default:
return state;
}
}
The rest of the code is here (GitHub)
おかげで、と悪い英語のため申し訳ありません!
ありがとうございました!私はImがReduxの仕組みについてまだ混乱していると思う。) – user3344570
まあ、アクションが起こったときはいつでもあなたの状態を編集して返します。私はあなたがその部分を理解していると思います。あなたはあなたの状態を間違って編集しました。もしアレイ非構造自体( '[...状態、{}]'の部分)を使用する必要はありません。あなたはそれをやって快適に感じるしかし、あなただけの限り、あなたは副作用を避けるように、それを書くことができます。 – stinodes