TypeError:Object(...)不是函数(redux)

use*_*957 1 redux

我想派遣一个动作时遇到TypeError(TypeError:Object(...)不是一个函数)。我没有使用任何中间件,也不知道该怎么办。我昨天已经有这个错误,但是以某种方式设法解决了(我不知道我是怎么做到的)

这是App.js:

import React from "react";
import { store } from "../store";
import { withdrawMoney} from "../actions";

const App = () => {
return (
  <div className="app">
    <div className="card">
      <div className="card-header">
        Welcome to your bank account
      </div>
      <div className="card-body">
        <h1>Hello, {store.getState().name}!</h1>
        <ul className="list-group">
          <li className="list-group-item">
            <h4>Your total amount:</h4>
            {store.getState().balance}
          </li>
        </ul>
        <button className="btn btn-primary card-link" data-amount="5000" onClick={dispatchBtnAction}>Withdraw $5,000</button>
        <button className="btn btn-primary card-link" data-amount="10000" onClick={dispatchBtnAction}>Witdhraw $10,000</button>
      </div>
    </div>
  </div>
);
}

function dispatchBtnAction(e) {
  store.dispatch(withdrawMoney(e.target.dataset.amount));
}

export default App;
Run Code Online (Sandbox Code Playgroud)

这是动作创建者:

function withdrawMoney(amount) {
  return {
    type: "ADD_TODO",
    amount
  }
}
Run Code Online (Sandbox Code Playgroud)

如果需要,这里是减速器:

export default (state, action) => {
  console.log(action);
  return state
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我是redux的新手,但是我想知道在分派操作时我总是犯什么错误。谢谢

Ale*_*x W 9

另一个会导致这个错误的微妙错误是我试图做的,不要不小心这样做:

import React, { useSelector, useState ... } from 'react'
Run Code Online (Sandbox Code Playgroud)

它应该是:

import React, { useState } from 'react'
import { useSelector } from 'react-redux'
Run Code Online (Sandbox Code Playgroud)


Cod*_*ker 8

我相信问题是您没有导出withdrawMoney函数,因此您无法在尝试导入的组件中调用它。

尝试:

export function withdrawMoney(amount) {
  return {
    type: "ADD_TODO",
    amount
  }
}
Run Code Online (Sandbox Code Playgroud)