例如,在道具中,我有一个名为“用户”的对象,该对象设置为:
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)
为了返回仅更新条目属性的新用户对象,编写返回值的正确方法是什么?谢谢!
渲染我的组件时,我不断收到一个唯一的关键子错误。我输入的数据有一个 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)