Uncaught TypeError: TodoActions.createTodo is not a function at Todos.createTodo

Uncaught TypeError: TodoActions.createTodo is not a function at Todos.createTodo

我遇到了标题中的错误。我试图将一些代码放入通量模式中,所以我有:

  1. 表示操作的 TodoActions 文件
  2. 代表视图的 Todos 文件
  3. 我也有 Dispatcher 文件和 Store 文件,但我觉得问题不大 他们。

点击 Todos.js 中的按钮时,它会调用 Todos.js 中的 createTodo() 函数,同时执行

发生错误 -> TodoActions.createTodo 不是 Todos.createTodo 处的函数

Todos.js

import React from "react";
import Todo from "../components/Todo";
import TodoStore from "../stores/TodoStore";
import * as TodoActions from "../actions/TodoActions";

export default class Todos extends React.Component {
  constructor() {
    super();
    this.state = {
      todos: TodoStore.getAll(),
    };
  }

  componentWillMount() {
    TodoStore.on("change", () =>{
      this.setState({
        todos: TodoStore.getAll(),
      });
    });
  }

  createTodo(){
    TodoActions.createTodo('x');
  }

render() {
    const { todos } = this.state;
const TodoComponents = todos.map((todo) => {
    return <Todo key={todo.id} {...todo}/>;
});

return (
  <div>
  <button onClick={this.createTodo.bind(this)}>Create!</button>
    <h1>Todos</h1>
    <ul>{TodoComponents}</ul>
  </div>
);
  }
}

TodoActions.js

import dispatcher from "../thedispatcher/dispatcher";

export function createTodo(text){
    dispatcher.dispatch({
        type: "CREATE_TODO",
        text,
    });
}

project structure

提前致谢!

我认为文件 TodoActions 是 bing 导入的而不是 TodoActions.js,所以如果您不需要它或重命名它,因此 TodoActions.js 将被导入。