【发布时间】:2020-02-03 18:01:32
【问题描述】:
我的 NextJS 应用程序中有搜索页面。 URL 示例 - /search?q=Naaarutoo。例如,在重新加载后,我只想将“Naaarutoo”设置为输入值(我知道如何将查询参数设置为输入值)立即。
如果我们仔细观察,我们会发现该字段未完成:
我认为这是因为服务器端返回简单的 HTML 给客户端,然后才开始客户端执行。如果我错了,请纠正我。
import React from 'react'
import {Formik, Form, Field} from 'formik'
const Search = ({router: {query}}) => (
<Formik enableReinitialize onSubmit={() => {
}} initialValues={{q: query.q || ''}} render={() => (
<Form>
<Field name='q' type="search" placeholder="Find something"/>
</Form>
)}/>
)
export default withPageRouter(Search)
上次更新:
我不知道为什么但它有效(我不记得我做了什么(͡°͜ʖ͡°)),好的,谢谢大家的帮助。
【问题讨论】:
-
在
Formik上使用enableReinitialize属性。默认情况下,如果initialValues发生变化,Formik 不会重新渲染。这有点小技巧,但它确实有效。 -
@DanPantry,我的代码中有
enableReinitialize。忘记在这里添加了,哎呀
标签: javascript html reactjs next.js formik