问题,这个状态来自后端,它是一个消息数组,将使用useState存储在状态中。此状态将在子组件中传递。问题是我想在将特定键存储到状态之前更改它的值。
消息数组样本数据
const messages = [
{
value: 'sample value one',
status: false,
},
{
value: 'sample value two',
status: false,
},
];
UseSelector
const messageGetById = useSelector((state) => state.messageGetById);
const { message } = messageGetById;
UseEffect
useEffect(() => {
if (message) {
setCurrentMessage(message);
}
}, [message]);
我想要的输出是在将消息传递给setCurrentMessage之前,status的所有值将被更改为true。
谢谢!
您可以使用map方法映射数组并将状态更改为true
useEffect(() => {
if (message) {
const newMessages = messages?.map((mess) => {
return {...mess, status: true}})
setCurrentMessage(newMessages);
}}, [message]);
用useEffect
设置映射状态
useEffect(() => {
const data = [...message];
if (data.length > 0) {
data.map((ele) => ({
value: "YOUR CHANGED VALUE",
status: ele.status,
}));
setCurrentMessage(data);
}
}, [message]);