Node.js 根据用户操作,使用默认值初始化Formik
我试图根据用户在日历上单击的日期,使用默认值初始化一个Formik表单 应该很容易做到,但我缺乏ReactJS和Formik方面的经验,无法找到解决方案 在过去的几天里,我尝试了不同的方法,但都没有成功 在这个问题上,我将非常感谢您的帮助。多谢各位 下面我附上一张关于这个项目的图表,以便更好地理解我正在尝试做的事情 提前谢谢Node.js 根据用户操作,使用默认值初始化Formik,node.js,reactjs,fullcalendar,react-bootstrap,formik,Node.js,Reactjs,Fullcalendar,React Bootstrap,Formik,我试图根据用户在日历上单击的日期,使用默认值初始化一个Formik表单 应该很容易做到,但我缺乏ReactJS和Formik方面的经验,无法找到解决方案 在过去的几天里,我尝试了不同的方法,但都没有成功 在这个问题上,我将非常感谢您的帮助。多谢各位 下面我附上一张关于这个项目的图表,以便更好地理解我正在尝试做的事情 提前谢谢 在formik中,我们可以选择访问值并在其上执行某些操作 验证字段 请看下面的代码 它的蚁族成分 { 常量错误={}; 如果(!values.date){ error
在formik中,我们可以选择访问值并在其上执行某些操作
验证字段
请看下面的代码 它的蚁族成分
{
常量错误={};
如果(!values.date){
errors.date='日期是必需的';
}
如果(值。日期){
//我们现在有日期,用户选择它
警报(“你好”)
}
返回错误;
}}
//提交行动
onSubmit={(值,{setSubmitting})=>{
警报('表单已提交')
设置提交(假);
}}
>
{({
价值观
handleChange,
错误,
手推,
setFieldValue
}) => (
setFieldValue(“日期”,时间)}
占位符文本={“选择时间”}
showTimeSelect
timeFormat=“HH:mm”
时间间隔={15}
dateFormat=“LLL”
timeCaption=“时间”
/>
)}
验证选项可以处理您的问题
最后,我解决了将属性initialValues存储在我的Modal组件的状态中的问题,该属性用于初始化字段
因此,当EventEmitter触发事件时,侦听器将从日历中接收自定义数据,我将使用默认值初始化Formik表单。当用户单击日期并选择它时,您可以根据您的值访问它,并认为当我们有值时。例如,日期我想打开一个模式,如果你需要更多的示例注释和标记meHi@sinafarhadi,我不太明白你的意思。你能告诉我更多的细节吗。谢谢你的回复。你想为你写一个答案吗@sknkronic?@sinafarhadi是的,我想请。如果你知道解决办法,你有时间来帮助我。非常感谢。试试这个方法。。。它应该对你有用谢谢你的回答,但是你的解决方案在这种情况下对我没有帮助
<Formik
initialValues={{
date: '',
}}
// Validating Data
validate={values => {
const errors = {};
if (!values.date) {
errors.date = 'Date Is Required';
}
if (values.date) {
// We Have Date Now and User Selects it
alert('Hello')
}
return errors;
}}
// Submit Action
onSubmit={(values, { setSubmitting }) => {
alert('form submitted')
setSubmitting(false);
}}
>
{({
values,
handleChange,
errors,
handleSubmit,
setFieldValue
}) => (
<form onSubmit={handleSubmit}>
<div>
<DatePicker
selected={values.date}
onChange={(time)=> setFieldValue("date", time)}
placeholderText={"Choose Time"}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="LLL"
timeCaption="Time"
/>
</div>
<form />
)}
</Formik>