如何从 Redux Thunk 操作中访问 match.params?

问题描述 投票:0回答:1

如何执行类似于下面的操作,而不需要从组件手动将数据传递到函数中?

function doSomething()
    return (dispatch, getState) => {
       console.log(getState().router.match.params)
    }
}

这很重要,因为重要的变量存储在 React 中的 URL 中(例如分页页面、文档 ID、搜索输入)。当它们存储在 Redux 中时,访问它们非常容易,并且不需要从组件传递它们。但对于 match.params 来说,这似乎必须手动通过可能的几个包装组件传递到一个操作中。

reactjs react-redux react-router redux-thunk connected-react-router
1个回答
0
投票

一种解决方案是在调用操作时传递所需的参数。

function doSomething(params)
   return (dispatch, getState) => {
      console.log(params)
   }
}
// from component
const params = useParams();
dispatch(doSomething(params))
© www.soinside.com 2019 - 2024. All rights reserved.