reduxをアプリに正常に統合しました。データベースに送信するフォームからデータをフェッチしていて、eventListener(redux-saga)を使用して、データをストアに更新しています。
Redux DevToolsを使用すると、ストアにデータが表示されますが、コンポーネントにデータが表示されません。私はreact-reduxのuseSelectorフックを使用しています。
私のコンポーネント:
export const DisplayUser = () => {
const { db } = useSelector(state => state.data.db);
var count = 0;
return (
<Table striped bordered hover>
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Age</th>
<th>Birthday</th>
<th>Hobby</th>
</tr>
</thead>
<tbody>
{db ? (
db.map(data => {
return (
<tr key={count++}>
<td>{data.fname}</td>
<td>{data.lname}</td>
<td>{data.email}</td>
<td>{data.age}</td>
<td>{data.birth}</td>
<td>{data.hobby}</td>
</tr>
);
})
) : (
<p>Please fill the form</p>
)}
</tbody>
</Table>
);
};
これは最近提出された入力を含む私のreduxストアのスクリーンショットです:
これが私のレデューサーのコードです:
import {
SAVE_FORM,
UPDATE_STORE
} from "../actions/types";
const initialState = {
sent: [],
db: ""
};
export default function (state = initialState, action) {
switch (action.type) {
case SAVE_FORM:
return {
...state,
sent: [action.payload]
};
case UPDATE_STORE:
return {
db: [action.payload]
};
default:
return state;
}
}
db
セレクターの結果から構造を解除する必要はありません。あなたはすでにdb
キーまで選択しています。セレクターを次のように更新します。
const db = useSelector(state => state.data.db);
そして、あなたは行ってもいいはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加