首页 > 解决方案 > 无法将动作创建者导出到组件 mapDispatchToProps 方法

问题描述

在我的操作文件中,我创建了一个 fetchMethod

export const requestEmbedToken = () => (dispatch) => {

    return axios.get('http://localhost:7071/api/getTokens')
        .then(response => {
            console.log("token embed", response)

        })
}

应用程序.js

从 './redux/actions' 导入 { requestEmbedToken }

function App(token, requestToken) {
  const [embedToken, setEmbedToken] = useState(token.token);
  useEffect(() => {
    if (token.token === undefined) {
      requestToken()
      setEmbedToken(token.token)
    }
  });
  return (

const mapDispatchToProps = (dispatch) => {
  return ({
    requestToken: () => dispatch(requestEmbedToken())
  })
}
export default connect(mapStateToProps, mapDispatchToProps)(App)

实际上我遇到了一个错误

TypeError:requestToken 不是函数

标签: javascriptreactjsreact-reduxreact-thunk

解决方案


App组件将接收所有道具作为将作为参数传递的对象的属性,通常称为props对象。您需要解构props对象以访问令牌和其他道具

function App({ token, requestToken }) {
  ...
}

或者,您可以使用该props对象而不是对其进行解构

function App(props) {
  ...
}

然后使用props.tokenprops.requestToken访问道具作为props对象的属性。


推荐阅读