javascript - 如何解决 state.set 不是函数错误?
问题描述
这是我在减速器中使用 immutable.js 的代码。但是每次它给出错误 state.set 不是一个函数。但是当我用其他方式(没有不可变)改变它时它会改变
import React from 'react';
import _ from 'lodash-node';
import {Map } from 'immutable'
import {ModuleEvents} from './Actions';
const InitialState = Map({
currentAdmin: null,
data: {},
User:null
});
export const Reducer = (state = InitialState, action) => {
const {
type,
payload
} = action;
switch (type) {
case ModuleEvents.DATA_AVAILABLE:
{
state = {
data: payload,
loading: false,
User:null
};
return state.set('data',payload).set('loading',true)
}
解决方案
state = {
data: payload,
loading: false,
User:null
};
现在 state 不再是 immutable.js 对象,因此它会引发这样的错误。尝试,
case Modulevents.DATA_AVAILABLE: {
const entry = {}; // INTERNALLY NOT USING IMMUTABLE.JS
entry['data'] = item;
entry['loading'] = false;
entry['User'] = null;
return state.merge(entry);
}
推荐阅读
- swift - 如何在 SwipeCellKit 中实现左右滑动
- ansible - 使用 ansible 编辑 json 文件
- rabbitmq - 检查rabbitmq服务器是否存活的方法
- java - Xodus:键和/或值是否有最大长度?
- angular - 如何在单击角度 4 中的按钮时添加新行
- r - 在 R 中使用 heatmap.2 增加 RowSideColors 和 Heatmap 之间的距离
- amazon-web-services - 执行 terraform 时收到错误消息:API 版本与插件不兼容。插件版本:4,客户端版本:[5]
- laravel - 在 Nginx(宅基地)上获取 laravel 应用程序漂亮的 URL 工作
- python-3.x - 为什么我使用 Twitter 搜索 API 会无限获得相同的推文?
- r - 如何处理ggplot2中的垂直渐近线