我正尝试使用airbnb react-dates如下:
function NewEntryModal(props) {
return <Formik
initialValues={{}}
onSubmit={(values, actions) => {
}}
render={props => (
<form onSubmit={props.handleSubmit}>
<SingleDatePicker
date={props.date} // momentPropTypes.momentObj or null
onDateChange={date => props.setDate({ date })} // PropTypes.func.isRequired
focused={props.focused}
onFocusChange={(focused) => props.setIsFocused(focused)}
id="string" // PropTypes.string.isRequired,
/>
<button type="submit">Submit</button>
</form>
)}
/>
}
export default compose(
withState('isFocused', 'setIsFocused', false),
withState('date', 'setDate', moment()),
)(NewEntryModal);
我正在使用recompose withState
更新日期和焦点状态。但是,我收到一个错误消息,说setIsFocused
不是一个函数。
任何反馈将不胜感激。
答案 0 :(得分:0)
实际上,您有两个具有相同名称props
的变量
我认为这可以解决您的问题,我为render
函数使用了structuring参数
function NewEntryModal(props) {
return <Formik
initialValues={{}}
onSubmit={(values, actions) => {}}
render={({handleSubmit}) => (
<form onSubmit={handleSubmit}>
<SingleDatePicker
date={props.date}
onDateChange={props.setDate}
focused={props.focused}
onFocusChange={props.setIsFocused}
id="string",
/>
<button type="submit">Submit</button>
</form>
)}
/>
}
顺便说一句,我也将onDateChange
和onFocusChange
更改为
onDateChange={props.setDate}
onFocusChange={props.setIsFocused}
因为在此处创建其他箭头功能没有用