react js中单独状态和一起状态之间的差异



我以的形式写入状态

const [state,setState] =useState({
type:false,
imageSrc:'',
captionImage:'',
showImage:false,
});

当以形式改变状态时

setState({type:true});
setState({captionImage:'hellooo'});
setState({imageSrc:link});

并将其发送到另一个组件,如果该组件中有未定义的,但我以的形式写状态

const [type, setType] = useState(false);
const [imageSrc, setImageSrc] = useState('');
const [captionImage, setCaptionImage] = useState(false);
const [showImage, setShowImage] = useState(false);

当以形式改变状态时

setType(true);

并将其发送到另一个组件,则该组件中存在ok。

因为在第一种形式中,当您设置新状态而不是像这样传递一个新的完整对象时:

{
type:false,
imageSrc:'',
captionImage:'',
showImage:false,
}

您正在将您的状态设置为:

{type:true}

其他道具都不见了,如果你想在你的状态下只替换一个道具(例如type,同时保留其他道具,你可以这样做:

setState({ ...state, type: 'new value' })

最新更新