Reactjs React Redux操作不';我什么也不做

Reactjs React Redux操作不';我什么也不做,reactjs,react-redux,Reactjs,React Redux,在Redux中,我创建了另一个动作,只是复制了以前的一个动作,但它不起作用 有效的方法是: export const addEntry = entry => { const config = { headers: { "Content-Type": "application/json", }, } return async dispatch => { const response = await

在Redux中,我创建了另一个动作,只是复制了以前的一个动作,但它不起作用

有效的方法是:

export const addEntry = entry => {
  const config = {
    headers: {
      "Content-Type": "application/json",
    },
  }

  return async dispatch => {
    const response = await axios
      .post("http://localhost:5000/api/db/addentry", entry, config)
      .then(results => results.data)

    try {
      await dispatch({ type: ADD_ENTRY, payload: response })
    } catch (error) {
      console.log("await error", error)
    }
  }
}
一个没有:

export const deleteEntry = itemId => {

  console.log("action delete 1") // step 1

  return async dispatch => {

    console.log("action delete 2") // step 2

    const response = await axios.delete(
      `http://localhost:5000/api/db/deleteitem/${itemId}`,
      itemId
    )

    try {

      console.log("action delete 3") // step 3

      await dispatch({ type: DELETE_ENTRY, payload: response })
    } catch (error) {
      console.log("await error", error)
    }
  }
}
如果我一步一步地记录它,它会在第一次记录之后停止


它没有任何作用。同样的函数
addEntry
也可以完美地工作。有什么想法吗?

您必须使用
axios.delete
而不是
axios.post来删除ItemId


您还必须像
'DELETE\u ENTRY'
那样放置删除项,否则您的减速机将无法理解它

第一个日志之所以出现,是因为这是操作创建者的一部分。通常,action creator返回一个
{type:,payload:}
形状的对象,但在本例中,它返回一个新函数,称为“thunk”

如何调度此操作

为了实现这一点,您必须包括redux thunk中间件,如果它通过
分派(…)
接收函数,它将执行该函数


阅读有关

感谢@HMR,我刚刚忘记了
分派(deleteEntry(item.itemId))
当我调用操作时

似乎您必须删除带有itemId的条目。如果您使用的是
axios.post
,我建议您使用
axios.delete
。否则,它看起来不错。这可能会有帮助:它是否正在被调度?您能在任何异步操作之前调度类似于
dispatch({type:'begindelete'})
的东西吗?有人提出要求吗?在浏览器中有一个叫做开发工具的东西,它有一个网络选项卡,您可以在其中查看网络活动,如果安装了redux选项卡(redux开发工具)这在发布问题时非常有用,因为这些问题的质量比
它不起作用
它什么都不做
它已经存在了。删除但是。发布只是一个try@MarcoDisco如果使用react-redux-connect调用
props,很可能您没有从组件中分派操作。从组件中删除条目(id)
const dispatch=usedpatch();dispatch(deleteEntry(id))
如果您使用钩子。不,您必须将其放在括号之间才能工作(
'
),因为在您的减缩器中,它类似于:
案例“DELETE\u ENTRY”: