我正在尝试从React JSX按钮调用一个函数,我有一个问题,因为在react-redux操作中,在定义的函数中,我没有放入调度函数,它的工作方式应该是这样的。
const like_function = (id) => {
let post_id = id;
if (isAuthenticated) {
console.log(post_id, user_id);
like_post(post_id, user_id);
} else {
<Redirect to="/login" />;
console.log("Redirect to login");
}
};在这个按钮中,我使用一个参数调用函数。
<button onClick={() => like_function(post.id)}>Like</button>这是redux操作。这是问题所在。当调度被删除时,函数起作用,但调度甚至不会被调用,它甚至不会在异步请求之前将数据记录到控制台
export const like_post = (post_id, user_id) => async (dispatch) => {
const data = { post_id: post_id, user_id: user_id };
console.log(data);
dispatch({
type: POST_LIKE_LOADING,
});
try {
const res = await axios.put(`http://localhost:8000/api/like_list/`, data);
//console.log(res.data);
dispatch({
type: POST_LIKED,
payload: res.data,
});
} catch (err) {
console.log(err);
dispatch({
type: POST_LIKEING_FAIL,
});
}
};以下是我的redux缩减程序
case POST_LIKE_LOADING:
return {
...state,
isLoading: true,
};
case POST_LIKED:
return {
...state,
isLoading: true,
message: "OK"
};我的英语很抱歉,希望你能理解我,提前谢谢。
发布于 2021-02-27 05:53:47
你不是在分派行动。
import { useDispatch } from 'react-redux'
const dispatch = useDispatch()
dispatch(like_post(post_id, user_id))https://stackoverflow.com/questions/66393206
复制相似问题