重新加载页面后立即填写字段
Fill the field immediately after reloading the page
我的 NextJS 应用程序中有搜索页面。 URL 示例 - /search?q=Naaarutoo
。例如,在重新加载后,我只想将 "Naaarutoo" 设置为输入值(我知道如何将查询参数设置为输入值)IMMEDIATELY.
如果我们仔细观察,我们会发现该字段未满足:
我认为这是因为服务器端 returns 对客户端来说很简单 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)
最后更新:
我不知道为什么但它有效(我不记得我做了什么(͡°͜ʖ͡°)),好的,谢谢大家的帮助
您需要 getInitialProps 才能使用查询
import React from 'react'
import { Formik, Form, Field } from 'formik'
const Search = ({ query }) => (
<Formik onSubmit={() => { }} initialValues={{ q: query.q || '' }} render={() => (
<Form>
<Field name='q' type="search" placeholder="Find something" />
</Form>
)} />
)
Search.getInitialProps = ({ query }) => {
return { query }
}
export default Search
我检查了一下,对我来说没问题。
我的 NextJS 应用程序中有搜索页面。 URL 示例 - /search?q=Naaarutoo
。例如,在重新加载后,我只想将 "Naaarutoo" 设置为输入值(我知道如何将查询参数设置为输入值)IMMEDIATELY.
如果我们仔细观察,我们会发现该字段未满足:
我认为这是因为服务器端 returns 对客户端来说很简单 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)
最后更新:
我不知道为什么但它有效(我不记得我做了什么(͡°͜ʖ͡°)),好的,谢谢大家的帮助
您需要 getInitialProps 才能使用查询
import React from 'react'
import { Formik, Form, Field } from 'formik'
const Search = ({ query }) => (
<Formik onSubmit={() => { }} initialValues={{ q: query.q || '' }} render={() => (
<Form>
<Field name='q' type="search" placeholder="Find something" />
</Form>
)} />
)
Search.getInitialProps = ({ query }) => {
return { query }
}
export default Search
我检查了一下,对我来说没问题。