动作不被称为redux

时间:2016-10-27 07:30:38

标签: redux react-redux

我是redux的新手。为了简单起见,我试图使用Redux显示全局状态值。

当试图在控制台中查看操作对象时,我得到"对象{类型:" @@ redux / INIT"}"。这是什么?

这是我的简单代码:

import React, {Component} from 'react';
import ReactDOM from 'react-dom';
import {createStore} from 'redux';
import {Provider, connect} from 'react-redux';

class AllinOne extends Component{
  render(){
    return (
      <div>k
        {this.props.globalState}
      </div>
    )
  }
}


const store = createStore(myREducer);
store.dispatch(add);

const mapStateToProps = (globalState) => {
  return { globalState: globalState }
}


// Action
const add = () => {
  return {type : 'ADD'}
}

// Reducer
function myREducer(state=0, action) {
  console.log('counter', action) // returns Object {type: "@@redux/INIT"}

  return state;
}

export default connect (mapStateToProps)(AllinOne);
ReactDOM.render(<AllinOne />, document.getElementById('app'))

1 个答案:

答案 0 :(得分:1)

你看到的行动是国家的初始化。之后应该发送add操作。

有多个问题可能导致您的问题:

首先,add在被声明之前被调度,所以你可能会调用dispatch(undefined),它什么都不做。但这可能只是您示例中的复制粘贴问题。

更重要的是,add是一个应该是对象的函数。所以你应该尝试:

// Action
const add = {type : 'ADD'}