![](/img/trans.png)
[英]How to set initial state value for useState Hook in jest and enzyme?
[英]How to set the initial value of useState with the value of another state set in a useEffect hook?
這個問題聽起來很復雜,但我想做的是
const [profile, setProfile] = useState("")
useEffect(() => {
// Get user profile data from firestore..
setProfile(userData)
}, [])
const defaultGender = profile.gender
const [gender, setGender] = useState(defaultGender)
<input onChange={e => setGender(e.target.value)} type="radio" id="Man" name="gender" value="Man" checked={defaultGender === "Man"} /> <label htmlFor="Man">Man</label>
<input onChange={e => setGender(e.target.value)} type="radio" id="Woman" name="gender" value="Woman" checked={defaultGender === "Woman"} />
<label htmlFor="Woman">Woman</label>
問題是,使用此代碼, console.log(gender)
返回undefined
,我無法檢查(選擇)不同的性別,因為它卡在 Man 上。
請指教
似乎您只需要使用 state 中的gender
(不是defaultGender
)作為checked
輸入的道具:
const [gender, setGender] = useState(profile.gender)
<input onChange={e=> setGender(e.target.value)} type="radio" id="Man" name="gender" value="Man" checked={gender === "Man"} />
<label htmlFor="Man">Man</label>
<input onChange={e=> setGender(e.target.value)} type="radio" id="Woman" name="gender" value="Woman" checked={gender === "Woman"} />
<label htmlFor="Woman">Woman</label>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.