小编kay*_*ayq的帖子

如何让我的减速器更新状态中对象的一个​​属性?

例如,在道具中,我有一个名为“用户”的对象,该对象设置为:

user = { id: 1, 
         name: jim, 
         email: jim@gmail.com, 
         entries: 4,
         joined: 07-16-2018
       }
Run Code Online (Sandbox Code Playgroud)

我想让 UPDATE_USER_ENTRIES 操作仅使用有效负载将更新分派给 user.entries

我目前的减速器功能是这样的:

export const loadUserData = (state = initialStateUser, action = {}) => {
    switch(action.type) {
        case LOAD_USER:
            return Object.assign({}, state, { 
                user: { 
                    id: action.payload.id, 
                    name: action.payload.name, 
                    email: action.payload.email, 
                    entries: action.payload.entries, 
                    joined: action.payload.joined 
                }
            });
        case UPDATE_USER_ENTRIES:
            return {...state, **// NEED HELP HERE** };
        default:
            return state;
    }
}
Run Code Online (Sandbox Code Playgroud)

为了返回仅更新条目属性的新用户对象,编写返回值的正确方法是什么?谢谢!

javascript reactjs redux react-redux

3
推荐指数
1
解决办法
1340
查看次数

React:地图渲染组件导致不必要的重新渲染,子键道具不起作用?

渲染我的组件时,我不断收到一个唯一的关键子错误。我输入的数据有一个 UUID,我将其用作每个孩子的关键道具。对于我拥有的每个孩子,react 都会多次重新渲染。是什么导致重新渲染?

// Contact.js

import React from 'react';

const Contact = ({ user, chat, activeChat, setActiveChat }) => {

    if (!chat.id) return null;

    const lastMessage = chat.messages[chat.messages.length - 1];
    const chatSideName =
        chat.users.find(name => name !== user.username) || 'General';
    const classNames = activeChat && activeChat.id === chat.id ? 'active' : '';

    return (
        <div
            key={chat.id}              // ebd4698f-c4b2-4dfe-92b5-2f6636d98db8
            className={`user ${classNames}`}
            onClick={() => {
                setActiveChat(chat);
            }}
        >
            <div className="user-photo">{chatSideName[0].toUpperCase()}</div>
            <div className="user-info">
                <div className="name">{chatSideName}</div>
                {lastMessage && (
                    <div className="last-message">{lastMessage.message}</div>
                )}
            </div>
        </div> …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

3
推荐指数
1
解决办法
3107
查看次数

标签 统计

javascript ×2

reactjs ×2

react-redux ×1

redux ×1