reactjs - 如何使用带有 Typescript 的 Axios 将初始值设置为 Formik
问题描述
我是使用 React、Formik 和 Axios 的新手,不知道如何从数据库调用中设置表单的初始值。我试过下面的代码片段,但没有成功。我无法在网上找到有关如何执行此操作的任何打字稿示例。
async function getInitialValues() {
try {
const response = await axios.get('http://localhost:53132/api/test');
//console.log(response);
return {
Division_Id: response.Divison_Id,
Year: response.Year,
Cost: response.Cost
}
//console.log(InitialValues);
//return InitialValues;
} catch (error) {
console.error(error);
}
}
<Formik initialValues={getInitialValues()}...
解决方案
您需要在挂载时发出网络请求(在本例中使用“useEffect”挂钩)。然后将这些值保存到状态(在此处使用 useState 挂钩,但您可以使用 Redux 或您正在使用的任何状态管理工具)。
function NewForm() {
const [initialValues, setInitialValues] = useState();
useEffect(() => {
getInitialValues().then(res => setInitialValues(res);
}, []);
return initialValues ?
<Formik initialValues={initialValues}>content</Formik> :
<span>loading...</span>;
}
推荐阅读
- .htaccess - 重定向(重写?)子文件夹到父文件夹
- python - python如何对数据框的对角线求和
- flutter - 水平滚动周历颤动
- android - 将 Laravel APP 转换为 Apache Cordova APP
- spring-integration - Spring Integration - 重放相同的流程
- react-admin - React-admin:使用 CloneButton 时如何省略创建视图?
- swift - 如何从选择突出显示不同颜色的折线图
- javascript - 按钮编辑更改数据属性以输入
- intersystems-iris - 类日期/时间属性有什么用
- grafana - Grafana:即使“警报验证错误:未找到警报规则使用的数据源”,也会加载仪表板