未捕获(承诺)TypeError:无法读取未定义的属性“ dispatch”

时间:2018-08-12 16:13:43

标签: reactjs redux react-redux

我正在使用React Redux。得到错误-未捕获(承诺)TypeError:无法读取未定义的属性“ dispatch”

下面是控制台显示的内容

enter image description here

我知道我真的很接近,因为它可以短暂工作,并且添加了一些使它混乱的代码。我当时看到的是GET_RESULTS的有效负载,但是现在我不是因为这个错误。

点击搜索表单上的提交按钮时,这就是我所说的。我从API获取数据,并且该部分工作正常。

.....
import { store } from '../../../store/store'
import { getSearchResults } from '../../../actions/searchresults'
....
...
   handleSubmit(event) {
    event.preventDefault()
    get(`apiURLHere`, { maxContentLength: 400 })
    .then((data) => store.dispatch(getSearchResults(data)))
  }

这是我的操作-

export const getSearchResults = username => {
  return {
    type: 'GET_RESULTS',
    payload: username,
  }
}

1 个答案:

答案 0 :(得分:1)

search-advanced.js 文件中,您应该导入connect而不是导入store,然后连接您的组件,调度将在组件的属性中进行:

import { store } from '../../../store/store' // remove this line
import {connect}  from 'react-redux' 

更改:

export default class SearchAdvanced extends Component

收件人

class SearchAdvanced extends Component

而不是store.dispatch使用:

this.props.dispatch(getSearchResults(searchResults))

然后在文件末尾添加:

export default connect()(SearchAdvanced)