reactjs - 从 formik 向状态传递值
问题描述
我在我的反应应用程序中使用 formik 作为表单。
class myComponent extends Component {
constructor(props) {
this.state = {
inputData: {}
}
}
render() {
return(
<Formik>{({ errors, handleChange, values }) => (
console.log(values);
<Field type="text" name="address" onChange={handleChange} />
)}
</Formik>
)
}
}
问题:我如何将值传递给状态?
解决方案
我认为推荐的最佳实践是只使用 Formik 状态,以避免将状态存储在 2 个位置(Formik + 组件状态)的任何副作用。我也在寻求实现您想要的功能,并找到了以下组件 - https://github.com/jaredpalmer/formik-effect - 可以让您装饰该handleChange
功能。然而,在阅读了这个组件的 README 之后,我决定只使用 Formik 状态并将它的值传递给任何需要该状态内的值的函数。
要将值传递给函数,我使用了以下模式:
class Example extends Component {
handleValues(values) {
// Do something with values
}
render() {
return (
<Formik>
({values}) => {<button onClick={() => this.handleValues(values)}>Do something</button>}
</Formik>
);
}
}
推荐阅读
- visual-studio-code - 如何在 vscode 中打印设置的值?
- python - 创建和交付文件的 Django 站点的最小示例是什么?
- c# - C# 函数无法更新 ASP 文本框总数
- r - R中的gls函数:使用广义最小二乘拟合线性模型
- ruby-on-rails - 在 Ransack 中,当模型更新时动态更新 ranackers
- r - ID 列面板数据框
- node.js - Winston Logger (v2.4) 即使在旋转后也写入文件
- python - 为什么会出现“IndexError:元组索引超出范围”?
- mysql - 我无法将从数据库中提取的数据导出为 Node.JS 中的 Excel (.csv) 或 (xlsx) 格式
- php - laravel,从 URL 参数自动填充表单字段