Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将onChange逻辑添加到第三方反应日选择器元素_Javascript_Reactjs_React Day Picker_React Final Form - Fatal编程技术网

Javascript 将onChange逻辑添加到第三方反应日选择器元素

Javascript 将onChange逻辑添加到第三方反应日选择器元素,javascript,reactjs,react-day-picker,react-final-form,Javascript,Reactjs,React Day Picker,React Final Form,我正在尝试将react day picker的day picker与集成 React Final Form要求使用for each Form字段,这意味着在希望第三方表单元素在表单中可用时创建适配器组件。适配器组件。建议是 。问题似乎在于该方法,因此,我们需要管理日历更改时发生的情况,然后将日期存储在react final form所期望的value属性中 我在这里创建了一个代码笔: 我在Calendar.js中有一个handleDayClick方法,该方法在单击日期时运行,但是没有为日历一致地

我正在尝试将
react day picker
day picker
与集成

React Final Form要求使用for each Form字段,这意味着在希望第三方表单元素在表单中可用时创建适配器组件。适配器组件。建议是

。问题似乎在于该方法,因此,我们需要管理日历更改时发生的情况,然后将日期存储在
react final form
所期望的
value
属性中

我在这里创建了一个代码笔:

我在
Calendar.js
中有一个
handleDayClick
方法,该方法在单击日期时运行,但是没有为日历一致地触发
onChange

  • selectedDays
    会在
    Calendar
    本身中立即更新,但是
    表单在日历未聚焦之前不会获得正确的日期
  • 表单的
    validate
    方法只调用一次(第一次选择一天),而每次更新本机文本输入值时都会调用它

我希望表单值与日历的外部状态同步,并在每次单击/取消单击一天时触发validate方法。这是可能实现的还是我做了完全错误的事情?

使用
组件可能更容易。该组件使用标准HTML输入,支持
onChange
。我是这样做的:


{({input,meta})=>(
日期:
input.onChange(天)}
inputProps={{id:id}
/>
{meta.error&&meta.toucted&&{meta.error}
)}

根据文档,您可以将逻辑添加到“inputProps”属性中,因为这将向输入组件引入属性,所以您也可以向其添加css

inputProps对象 :要添加到输入组件的其他道具

您的代码如下所示:

const dateChanged=day=>(console.log(day))//日期更改时调用的函数
输入道具={{
style:styles.dayPickerInput,
onChange:event=>dateChanged(event.target.value),
}}