我知道这是重复的,但我不知道如何修复它在我的情况下,我发送了放置请求到服务器,但它有旧的值,我应该怎么办?
React代码:
const [sizeValue, setSizeValue] = useState(basketItem.clotheSize)
<select
name={"size"}
className={"sizeSelector"}
value={sizeValue}
onChange={e => {
setSizeValue(e.target.value)
updateClothesSize(basketItem.id, sizeValue)
}}
>
<option value="s">s</option>
<option value="m">m</option>
<option value="l">l</option>
<option value="xl">xl</option>
<option value="xxl">xxl</option>
</select>
axios代码:
export const updateClothesSize = async (id, size) => {
const {data} = await $host.put('api/basket/' + id, {clothesSize: size})
return data
}
1条答案
按热度按时间osh3o9ms1#
useState
不会立即更新状态值。您可以通过直接将值传递给updateClothesSize(basketItem.id, e.target.value)
来解决此问题。或者使用useEffect来调用updateClothesSize
。