Uncaught TypeError: TodoActions.createTodo is not a function at Todos.createTodo
Uncaught TypeError: TodoActions.createTodo is not a function at Todos.createTodo
我遇到了标题中的错误。我试图将一些代码放入通量模式中,所以我有:
- 表示操作的 TodoActions 文件
- 代表视图的 Todos 文件
- 我也有 Dispatcher 文件和 Store 文件,但我觉得问题不大
他们。
点击 Todos.js 中的按钮时,它会调用 Todos.js 中的 createTodo() 函数,同时执行
- TodoActions.createTodo('x');
发生错误 -> 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 将被导入。
我遇到了标题中的错误。我试图将一些代码放入通量模式中,所以我有:
- 表示操作的 TodoActions 文件
- 代表视图的 Todos 文件
- 我也有 Dispatcher 文件和 Store 文件,但我觉得问题不大 他们。
点击 Todos.js 中的按钮时,它会调用 Todos.js 中的 createTodo() 函数,同时执行
- TodoActions.createTodo('x');
发生错误 -> 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 将被导入。