动作没有被称为 redux

actions is not being called redux

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

当试图在控制台中查看操作对象时,我得到 "Object {type: "@@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'))

你看到的动作是状态的初始化。 add 动作应该在之后发送。

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

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

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

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