重新加载页面后立即填写字段

Art*_*hur 5 html javascript reactjs next.js formik

我的NextJS应用程序中有搜索页面。网址示例- /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)
Run Code Online (Sandbox Code Playgroud)

最近更新

我不知道为什么,但是它有效(我不记得自己做了什么(?°???°)),好的,谢谢大家的帮助。

Roh*_*aji 2

您需要 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
Run Code Online (Sandbox Code Playgroud)

我检查了它,它对我来说效果很好。