在react中传递到状态之前,我如何更改数组键值?



问题,这个状态来自后端,它是一个消息数组,将使用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]);

最新更新