未捕获的TypeError:(0,_reactRedux.bindActionCreators)不是一个功能

MCM*_*tan 4 reactjs redux

我正在玩redux,我已经开始得到这个错误,无法解决它,我希望它有任何意义,但似乎无法找到任何信息..任何人都可以解释这可能显示的原因?谢谢..

码:

import React, { Component } from 'react';
import { connect } from 'react-redux';
import { bindActionCreators } from 'react-redux';
import  { searchForBeers } from '../../actions/index';


class SearchBar extends Component {

  constructor(props) {
    super(props);

    this.state = { term: ''}

    this.onFieldChange = this.onFieldChange.bind(this);
    this.onClickSearch = this.onClickSearch.bind(this);
  }

  onFieldChange(event) {
    this.setState({ term: event.target.value })

    console.log(this.state)
  }

  onClickSearch() {
    console.log(this.state)

    this.props.searchForBeers(this.state.term)
  }

  render() {
    return (
        <div className="col-lg-6" style={{top:20 , width:'70%'}}>
           <div className="input-group">
         <span className="input-group-btn">
           <button onClick={this.onClickSearch} className="btn btn-secondary" type="button">Go!</button>
         </span>
         <input type="text" className="form-control" placeholder="Search for..." onChange={this.onFieldChange} />
       </div>
       </div>
    )
  }

}

//Container functions

function mapDispatchToProps(dispatch) {
  return bindActionCreators({ searchForBeers }, dispatch);
}

export default connect(null, mapDispatchToProps)(SearchBar);
Run Code Online (Sandbox Code Playgroud)

包json:

{
  "name": "redux-simple-starter",
  "version": "1.0.0",
  "description": "Simple starter package for Redux with React and Babel support",
  "main": "index.js",
  "repository": "git@github.com:StephenGrider/ReduxSimpleStarter.git",
  "scripts": {
    "start": "node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.2.1",
    "babel-loader": "^6.2.0",
    "babel-preset-es2015": "^6.1.18",
    "babel-preset-react": "^6.1.18",
    "chai": "^3.5.0",
    "chai-jquery": "^2.0.0",
    "css-loader": "^0.25.0",
    "jquery": "^2.2.1",
    "jsdom": "^8.1.0",
    "mocha": "^2.4.5",
    "node-sass": "^3.10.0",
    "react-addons-test-utils": "^0.14.7",
    "sass-loader": "^4.0.2",
    "style-loader": "^0.13.1",
    "webpack": "^1.13.2",
    "webpack-dev-server": "^1.14.0"
  },
  "dependencies": {
    "axios": "^0.13.1",
    "babel-preset-stage-1": "^6.1.18",
    "lodash": "^3.10.1",
    "material-ui": "^0.15.4",
    "raw-loader": "^0.5.1",
    "react": "^15.3.2",
    "react-dom": "^15.3.2",
    "react-redux": "^4.4.5",
    "react-router": "^2.0.1",
    "redux": "^3.5.2",
    "redux-promise": "^0.5.0",
    "redux-simple-promise": "^2.0.2"
  }
}
Run Code Online (Sandbox Code Playgroud)

iva*_*rni 13

它是redux模块提供的bindActionCreators功能,因此导入它的正确方法是

import { bindActionCreators } from 'redux';
Run Code Online (Sandbox Code Playgroud)

而不是从中导入react-redux.

在他们的API文档站点上有一个包含文档示例的页面.

您看到的错误看起来很简单,因为babel转换ES2015模块的方式,但它实际上并不是React或Redux抛出它.