2 回答

TA贡献1796条经验 获得超4个赞
在类组件中,如果您设置状态并仅提供部分对象,react 将与完整状态进行浅合并。这不会发生在功能组件中。无论您将状态设置为什么,这就是状态。所以这段代码:
setSearchedValue({ selectedVideo: singleRenderedVideo })
...将状态设置为仅具有 selectedVideo 属性的对象。它不再具有视频属性。
你有两个选择:
自己做一个浅合并
setSearchedValue(previous => ({
...previous,
selectedVideo: singleRenderedVideo
}));
有两个独立的状态变量。对于像你这样的情况,我建议这样做。
const [ videos, setVideos ] = useState([]);
const [ selectedVideo, setSelectedVideo ] = useState(null);
// ...
setSelectedVideo(singleRenderedVideo);

TA贡献1802条经验 获得超6个赞
searchedValue 设置为 {selectedVideo:...}。另一个属性,因为新值不具有该属性。当您设置 searchedValue 时,您应该包含您的视频属性。它应该是 setSearchedValue ({...searchedValue, selectedVideo: newValue})
添加回答
举报