首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react-redux进行调度

使用react-redux进行调度
EN

Stack Overflow用户
提问于 2021-02-27 05:48:15
回答 1查看 31关注 0票数 0

我正在尝试从React JSX按钮调用一个函数,我有一个问题,因为在react-redux操作中,在定义的函数中,我没有放入调度函数,它的工作方式应该是这样的。

代码语言:javascript
复制
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");
  }
};

在这个按钮中,我使用一个参数调用函数。

代码语言:javascript
复制
<button onClick={() => like_function(post.id)}>Like</button>

这是redux操作。这是问题所在。当调度被删除时,函数起作用,但调度甚至不会被调用,它甚至不会在异步请求之前将数据记录到控制台

代码语言:javascript
复制
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缩减程序

代码语言:javascript
复制
case POST_LIKE_LOADING:
  return {
    ...state,
    isLoading: true,
  };
case POST_LIKED:
  return {
    ...state,
    isLoading: true,
    message: "OK"
  };

我的英语很抱歉,希望你能理解我,提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-02-27 05:53:47

你不是在分派行动。

代码语言:javascript
复制
import { useDispatch } from 'react-redux'

const dispatch = useDispatch()

dispatch(like_post(post_id, user_id))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66393206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档