React 初始呈现空值但稍后更新。需要设置值作为初始状态
React initial renders null value but updates later. Need to set the value as initial state
我创建了一个自定义挂钩,用于在本地存储中存储用户选择的值。
这些值存储在 localstorage
中。我需要组件使用自定义挂钩返回的值,并在呈现时将其存储为初始状态。但问题是组件最初加载时返回的值结果是 null
。
因此,状态将其设置为1
(我有条件地处理了它)。
我需要更新的值以某种方式设置状态,即使初始渲染是 null
。
这是代码片段
const bedVal = useLocalStorage('beds')
const bedroomsVal = useLocalStorage('bedrooms')
const guestsVal = useLocalStorage('guests')
const bathroomsVal = useLocalStorage('bathrooms')
const [bedrooms, setBedrooms] = useState(bedroomsVal ? bedroomsVal : 1);
const [beds, setBeds] = useState(bedVal ? bedVal : 1);
const [guests, setGuests] = useState(guestsVal ? guestsVal : 1);
const [bathrooms, setBathrooms] = useState(bathroomsVal ? bathroomsVal : 1)
请尝试使用 useEffect
钩子。
类似的东西:
const [beds, setBeds] = useState();
useEffect(() => {
setBeds(bedVal || 1);
}, []);
谢谢,@NetanelVaknin。只是添加到您的代码中,即使我们使用 useEffect
,该值最初是 null
,但如果我们添加依赖项,它会更新为新值。
useEffect(() => {
setBeds(bedVal || 1);
}, [bedVal]);
我创建了一个自定义挂钩,用于在本地存储中存储用户选择的值。
这些值存储在 localstorage
中。我需要组件使用自定义挂钩返回的值,并在呈现时将其存储为初始状态。但问题是组件最初加载时返回的值结果是 null
。
因此,状态将其设置为1
(我有条件地处理了它)。
我需要更新的值以某种方式设置状态,即使初始渲染是 null
。
这是代码片段
const bedVal = useLocalStorage('beds')
const bedroomsVal = useLocalStorage('bedrooms')
const guestsVal = useLocalStorage('guests')
const bathroomsVal = useLocalStorage('bathrooms')
const [bedrooms, setBedrooms] = useState(bedroomsVal ? bedroomsVal : 1);
const [beds, setBeds] = useState(bedVal ? bedVal : 1);
const [guests, setGuests] = useState(guestsVal ? guestsVal : 1);
const [bathrooms, setBathrooms] = useState(bathroomsVal ? bathroomsVal : 1)
请尝试使用 useEffect
钩子。
类似的东西:
const [beds, setBeds] = useState();
useEffect(() => {
setBeds(bedVal || 1);
}, []);
谢谢,@NetanelVaknin。只是添加到您的代码中,即使我们使用 useEffect
,该值最初是 null
,但如果我们添加依赖项,它会更新为新值。
useEffect(() => {
setBeds(bedVal || 1);
}, [bedVal]);