![](/img/trans.png)
[英]React prop function called after useState set hook kills hook
[英]React Hook useState setter for prop fails
我將missingWeekDays
初始化為一個空數組[]
。 我創建了一個字符串數組weekdays
並分配給missingWeekDays
。 但是當我安慰weekdays
有內容但missingWeekDays
仍然是空的。 這是為什么?
有人建議setMissingWeekDays
應該有一個像舊的setState
一樣的回調。 但是我找不到有關此回調的任何文檔...鏈接將不勝感激!
import React, { FC, useEffect, useState } from 'react'
const Component: FC = () => {
const initialStart = moment()
.year(2018)
.week(5)
.startOf('isoWeek')
const [missingWeekDays, setMissingWeekDays] = useState<string[]>([])
const [startDate, setStartDate] = useState(initialStart)
useEffect(() => {
const weekdays = createWeekdaysList(startDate.toDate())
setMissingWeekDays(weekdays)
console.log(missingWeekDays, weekdays)
}, [startDate])
return <CigarettesDetails onTimeChange={handleTimeChange} data={data} />
}
export default CigarettesDetailsContainer
const createWeekdaysList = (startDate: Date): string[] => {
const weekdaysList: string[] = []
let weekDay = 0
while (weekDay < 7) {
const date: string = moment(startDate)
.clone()
.add(weekDay, 'day')
.format('YYYY-MM-DD')
weekdaysList.push(date)
weekDay += 1
}
return weekdaysList
}
來自 useState 的設置器被異步處理。 這會導致您的控制台日志沒有更新的數據。 該線程為您添加了更多顏色:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.