gpt4 book ai didi

reactjs - withFormik() : How to use handleChange

转载 作者:行者123 更新时间:2023-12-03 13:29:24 25 4
gpt4 key购买 nike

当前平台:NodeJS(最小)、客户端 React w/Redux、Formik,是的。

给出以下示例代码(不包括整个 React 组件代码,因为它与问题无关):

class RegisterPage extends React.Component {
constructor(props) {
super(props);
}

// (...)

render () {
<Form>
<Field name="email" type="email" />
<Field name="password" type="password" />
<Field
name="myCheckbox"
type="checkbox"
checked={this.props.values.myCheckbox}
onChange={ ?????????? } />
</Form>
}
}

const handleFormSubmission = (values, { resetForm, setErrors, setSubmitting }) => {
console.log(values);
};

const handleFormChange = (event) => {
event.persist();
console.log('changed');
};

const MyFormik = withFormik({
mapPropsToValues ({ email, password, myCheckbox }) {
return {
email: email || '',
password: password || '',
myCheckbox: myCheckbox || false
}
},
validationSchema: (...Yup schema here...),
handleSubmit (values, bag) { return handleFormSubmission(values, bag); }
})(RegisterPage);

export default connect()(MyFormik);

...如何使用handleChange方法?我需要保留原始的(来自 Formik 的),同时添加处理该复选框更改的代码。有一些组件行为取决于该复选框的选中值。

请注意,我没有将 onChange 属性传递给电子邮件或密码,因为没有额外的行为可以对其进行编码。该复选框将具有特殊行为。

最佳答案

您可以为复选框声明一个处理程序,并使用它!使用 Formkit 的 native 处理程序和您的自定义处理程序。

class RegisterPage extends React.Component {
constructor(props) {
super(props);
}
// (...)
handleCheckBox: (e) => {
// do whatever you want to the value
}
render () {
<Form>
<Field name="email" type="email" />
<Field name="password" type="password" />
<Field
name="myCheckbox"
type="checkbox"
checked={this.props.values.myCheckbox}
onChange={(e) => {this.props.handleChange(e); this.handleCheckBox(e)}} />
</Form>
}
}

关于reactjs - withFormik() : How to use handleChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51159477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com