Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在NextJS的getServerSideProps中获取useState值_Javascript_Reactjs_Next.js - Fatal编程技术网

Javascript 如何在NextJS的getServerSideProps中获取useState值

Javascript 如何在NextJS的getServerSideProps中获取useState值,javascript,reactjs,next.js,Javascript,Reactjs,Next.js,我有两个函数,一个函数从用户那里获取输入,另一个函数搜索提供的输入数据。我想在getServerSideProps函数中使用searchQueryfromuseState。 有没有办法做到这一点 函数SearchDemo(){ 常量[searchQuery,setSearchQuery]=useState(“”) const ChangeHandler=事件=>{ setSearchQuery(event.target.value) } const ButtonHandler=事件=>{ ev

我有两个函数,一个函数从用户那里获取输入,另一个函数搜索提供的输入数据。我想在
getServerSideProps
函数中使用
searchQuery
from
useState
。 有没有办法做到这一点

函数SearchDemo(){
常量[searchQuery,setSearchQuery]=useState(“”)
const ChangeHandler=事件=>{
setSearchQuery(event.target.value)
}
const ButtonHandler=事件=>{
event.preventDefault()
log(`Data:${searchQuery}`)
}
返回(
搜索:
搜寻
);
}
导出异步函数getServerSideProps({query:{page},searchQuery}){
console.log(searchQuery)
返回{
道具:{
数据:数据
}
}

}
您需要推送url并重新加载页面,因为它是服务器端呈现的

const router = useRouter()
const ButtonHandler = event => {
  event.preventDefault()
  router.push(`/thecurrentUrl?search=${searchQuery}`
  // if doesn't work then use window.location.href
  console.log(`Data: ${searchQuery}`)
}

export async function getServerSideProps({query: {page}, searchQuery}){
    console.log(query.search)
    return {
        props: {
            data: data
        }
    }
}

对我也搜索了一下,只找到了这个解决方案。我们必须使用router.push推送相同的URL,才能再次调用getServerSideProps。实际上,当页面已经加载时,不必调用getServerSideProps,您可以始终在组件中使用正常的获取。因此,如果您知道我的意思,您可以同时使用服务器端生成的搜索结果和正常的获取结果。