Reactjs React redux交叉原点错误/类型错误不是函数

Reactjs React redux交叉原点错误/类型错误不是函数,reactjs,redux,Reactjs,Redux,正在尝试从构建基本todo应用程序 我看到的所有文件都存在于指南的相同文件夹结构中。但我也有其他文件,从节点服务器生成用于其他路由的其他包 在我引入redux之前,该应用程序运行良好 每当我尝试向redux应用商店分派操作时,都会出现以下两个错误: Uncaught TypeError: (0 , _actions.addTodo) is not a function Uncaught Error: A cross-origin error was thrown. React doesn't h

正在尝试从构建基本todo应用程序

我看到的所有文件都存在于指南的相同文件夹结构中。但我也有其他文件,从节点服务器生成用于其他路由的其他包

在我引入redux之前,该应用程序运行良好

每当我尝试向redux应用商店分派操作时,都会出现以下两个错误:

Uncaught TypeError: (0 , _actions.addTodo) is not a function
Uncaught Error: A cross-origin error was thrown. React doesn't have access to the actual error object in development. 
从网上看,这似乎是一些事情

A) 我正在尝试创建一个包含多个块的应用程序:(我尝试添加crossOriginLoading属性)

B) 将包含的脚本设置为交叉原点设置:

<script crossorigin type="text/javascript" src="./dist/todo.bundle.js"></script>
我使用webpack制作一个包,然后在HTML页面上提供该包。该应用程序甚至没有发出任何请求,所以我很困惑为什么会出现CORS问题

有人知道我还能试着调试这个吗

编辑:一堆代码:

索引


尝试在导入中提供完整路径

 import { addTodo } from '../actions/index'
  • 帮助:)

您如何准确地发送操作,可能是错误的,在您的操作创建者或容器中。感谢Shubham,我添加了操作的路径。我很确定在提供程序中包装AddTodo容器可以让它访问dispatch?在上面的代码中,情况看起来不错,您能否确保AddTodo在actions文件中导出并且路径正确?请尝试在import中提供完整路径。从“../actions/index”导入{addTodo}addTodo正在被导出,我猜这就是容器中使用的内容?
devtool: {
    devtool: 'cheap-module-source-map'
}
import React from 'react'
import {render} from 'react-dom'
import {Provider} from 'react-redux'
import {createStore} from 'redux'

import todoApp from './reducers'
import App from './components/App'

let store = createStore(todoApp)

render(
    <Provider store={store}>
        <App />
    </Provider>,
    document.getElementById('root')
)
import React from 'react'
import Footer from './Footer'
import AddTodo from '../containers/AddTodo'
import VisibleTodoList from '../containers/VisibleTodoList'

const App = () => (
    <div>
        <AddTodo />
        <VisibleTodoList />
        <Footer />
    </div>
)

export default App
import React from 'react'
import { connect } from 'react-redux'
import { addTodo } from '../actions'

let AddTodo = ({ dispatch }) => {
  let input

  return (
    <div>
      <form
        onSubmit={e => {
          e.preventDefault()
          if (!input.value.trim()) {
            return
          }
          dispatch(addTodo(input.value))
          input.value = ''
        }}
      >
        <input
          ref={node => {
            input = node
          }}
        />
        <button type="submit">
          Add Todo
        </button>
      </form>
    </div>
  )
}
AddTodo = connect()(AddTodo)

export default AddTodo
let nextTodoId = 0
export const addTodo = text => {
  return {
    type: 'ADD_TODO',
    id: nextTodoId++,
    text
  }
}

export const setVisibilityFilter = filter => {
  return {
    type: 'SET_VISIBILITY_FILTER',
    filter
  }
}

export const toggleTodo = id => {
  return {
    type: 'TOGGLE_TODO',
    id
  }
}
 import { addTodo } from '../actions/index'