【发布时间】:2021-11-06 23:45:36
【问题描述】:
我正在尝试从我的数据库中打印数据。使用钩子和没有钩子都做得很好,所以这次我尝试使用 redux 和钩子来实现 CRUD。但那是返回一个未定义的每次渲染。所以我调用了有效载荷,它是一个对象数组。我正在使用 redux、中间件 Thunk 和钩子。请有人指导我解决这个问题。
下面是代码:
Component.jsx
import { retrieveCars } from '../action/cars.action'
const cars = useSelector(state => state.cars);
const dispatch = useDispatch();
useEffect(() => {
dispatch(retrieveCars());
});
<tbody>
{cars &&
cars.map((data) =>
<tr key={data.idCars}>
<th scope="row">{data.idCars}</th>
<td>{data.carName}</td>
<td>{data.carModel}</td>
<td>
<Link to={"/classement/update/" + data.idCars}
className="btn btn-info"
>
Edit
</Link>
<button className="btn btn-danger" onClick={() => deleteC(data.idCars)}>
Remove
</button>
</td>
</tr>
)
}
</tbody>
**cars.action.js**
export const retrieveCars = () => async (dispatch) => {
try {
const res = await DataService.getAll();
dispatch({
type: RETRIEVE_CARS,
payload: res.data,
});
} catch (err) {
console.log(err);
}
};
汽车减速器:
const initialState = [];
function carReducer(cars = initialState, action) {
const { type, payload } = action;
switch (type) {
case RETRIEVE_CARS:
return payload;
default:
return cars;
}
Store.js
import rootReducer from '../reducers/carReducer';
const initialState = {};
const middleware = [thunk];
const store = createStore(
rootReducer,
initialState,
composeWithDevTools(applyMiddleware(...middleware))
);
export default store;
【问题讨论】:
-
你是如何定义 rootReducer 的?
-
@Erfan import rootReducer from '../reducers/carReducer';它是上面代码中的汽车减速器
标签: reactjs react-redux axios react-hooks redux-thunk