您好,我将Immuteble Map用作状态,并且当我尝试maspStateToProps时出现此错误。
未捕获的不变违反:mapStateToProps必须返回一个对象。而是收到了Map {}。
mapStateToProps
这是我的代码:
零件:
const mapStateToProps = (state) => { return state } class LoanCalculator extends React.Component{ componentWillMount(){ this.dispatch(loadConstraints()); } render(){ return ( <div> <h1> Loan Calculator </h1> <SlidersBox {...this.props}/> </div> ) } } LoanCalculator = connect( mapStateToProps )(LoanCalculator) export default LoanCalculator
减速器
import { Map } from 'immutable' import {LOAD_CONSTRAINTS, SET_AMOUNT_VALUE, SET_TERM_VALUE} from "../actions/actions"; const initialState = new Map(); export default function calculator(state = initialState, action){ switch (action.type){ case LOAD_CONSTRAINTS: return state.set("constraints", action.constraints) case SET_AMOUNT_VALUE: return state.set("selectedAmount", action.amount) case SET_TERM_VALUE: return state.set("selectedTerm", action.term) default: return state } }
您可以在mapStateToProps函数中从地图中手动提取所需的值:
const mapStateToProps = (state) => { return { constraints: state.get('constraints'), selectedAmount: state.get('selectedAmount'), selectedTerm: state.get('selectedTerm'), }; }