我有以下代碼const initialState = { values: { email: '', password: '' }, touched: { email: false, password: false }, errors: false, isValid: false, isLoading: false, submitError: null};function SignIn(props) { const [state, setState] = useState(initialState); useEffect(() => { console.log(state); }); const handleFieldChange = (field, value) => { const newState = state; newState.submitError = null; newState.touched[field] = true; newState.values[field] = value; newState.errors = true; // set to true just for test setState(newState); }; const showEmailError = state.errors.email; return ( <div> <TextField className={classes.textField} label="Email address" name="email" onChange={event => handleFieldChange('email', event.target.value)} type="text" value={state.email} variant="outlined" /> {showEmailError && ( <Typography className={classes.fieldError} variant="body2" > {state.errors.email[0]} </Typography> )} </div> ) }我遇到的問題是,在handFieldChange執行時,沒有出現電子郵件錯誤。就好像我沒有在我的 return 語句中得到最新的狀態變化。我做錯了什么?
從 React 鉤子讀取狀態
慕尼黑5688855
2021-08-20 16:58:31