我是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'))
答案 0 :(得分:1)
你看到的行动是国家的初始化。之后应该发送add
操作。
有多个问题可能导致您的问题:
首先,add
在被声明之前被调度,所以你可能会调用dispatch(undefined)
,它什么都不做。但这可能只是您示例中的复制粘贴问题。
更重要的是,add
是一个应该是对象的函数。所以你应该尝试:
// Action
const add = {type : 'ADD'}