やりたいこと
生年月日を選択できるプルダウンがあるのですが、
年と月はプルダウンで選択したものが画面に設定されるのですが日はプルダウンで選択はできるのですが選択したものが画面に設定されません。
下記にコードを貼りましたのでわかる人がいたら教えて欲しいです。
const onChangeBirthDate = (key: keyof User, value: number) => { const emp = state.newUser; const birthYear = (key === 'birthYear') ? value : emp.birthYear; const birthMonth = (key === 'birthMonth') ? value : emp.birthMonth; const lastDayOfThisMonth = daysInMonth(birthYear, birthMonth); if (key === 'hireDate') { setState({ ...state, newUser: { ...state.newUser, birthYear, birthMonth, birthDate: value, }, }); } else { setState({ ...state, newUser: { ...state.newUser, birthYear, birthMonth, birthDate: (emp.birthDate > lastDayOfThisMonth) ? lastDayOfThisMonth : emp.birthDate, }, }); } }; <Select name="form-field-name-year" placeholder="-" value={newUser.birthYear} options={range(BIRTH_YEAR_MIN, thisYear).map(toOptions)} onChange={(newObj: OptionType) => onChangeBirthDate('birthYear', newObj.value)} /> <Select name="form-field-name-month" placeholder="-" value={newUser.birthMonth} options={range(1, 12).map(toOptions)} onChange={(newObj: OptionType) => onChangeBirthDate('birthMonth', newObj.value)} /> <Select name="form-field-name-day" placeholder="-" value={newUser.birthDate} options={range(1, daysInMonth( state.newUser.birthYear, state.newUser.birthMonth )).map(toOptions)} onChange={(newObj: OptionType) => onChangeBirthDate('birthDate', newObj.value)} />
if (key === 'hireDate') { のところ、'birthDate' では?
あなたの回答
tips
プレビュー