Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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
Reactjs 如何使用useffect-next.js(用于获取和缓存的swr钩子)将数据传递到useState_Reactjs_Next.js - Fatal编程技术网

Reactjs 如何使用useffect-next.js(用于获取和缓存的swr钩子)将数据传递到useState

Reactjs 如何使用useffect-next.js(用于获取和缓存的swr钩子)将数据传递到useState,reactjs,next.js,Reactjs,Next.js,我想将数据传递到我的useState,问题是useEffect无法很好地执行此操作 这就是我所拥有的 const PublicationsHome = ({ data: allPubs }) => { // All pubs const { data: Publications }: thePublication = useSWR( `${process.env.URL}/api/publication`, { initialData: allPubs

我想将数据传递到我的useState,问题是useEffect无法很好地执行此操作

这就是我所拥有的

const PublicationsHome = ({ data: allPubs }) => {
  // All pubs

  const { data: Publications }: thePublication = useSWR(
    `${process.env.URL}/api/publication`,
    {
      initialData: allPubs,
      revalidateOnFocus: false
    }
  );

  const [pubRequested, setPubRequested] = useState<Ipublication[]>([]);

  useEffect(() => {
      setPubRequested(Publications);
  }, []);

  console.log(pubRequested);

`;

  return ()
};

export const getStaticProps: GetStaticProps = async () => {
  const { data } = await axios.get(`${process.env.URL}/api/publication`);

  return {
    props: data
  };
};

export default PublicationsHome;

const PublicationsHome=({data:allPubs})=>{
//所有酒吧
const{data:Publications}:thePublication=useSWR(
`${process.env.URL}/api/publication`,
{
initialData:allPubs,
重新验证焦点:false
}
);
const[pubRequested,setPubRequested]=useState([]);
useffect(()=>{
秘书处(出版物);
}, []);
console.log(已请求);
`;
返回()
};
导出常量getStaticProps:getStaticProps=async()=>{
const{data}=wait axios.get(`${process.env.URL}/api/publication`);
返回{
道具:数据
};
};
导出默认出版物SHOME;
所以,逻辑非常简单,我使用getStaticProps获取数据,这是服务器端渲染,但我想使用SWR钩子,所以我使用initialData以便可以使用它,最后一点是,我使用useEffect,我想将发布数据从SWR传递到我的useState,问题是,发布数据速度太慢,无法传递数据

如您所见,我有一个console.log(),它返回未定义的值

我能做些什么,我需要这些数据在我的使用状态,有什么想法吗


感谢大家

您需要等待数据加载

  useEffect(() => {
    if(data){
      setPubRequested(Publications);
    }
  }, [data]);

谢谢你,伊凡:/!