Reactjs 如何使用useffect-next.js(用于获取和缓存的swr钩子)将数据传递到useState
我想将数据传递到我的useState,问题是useEffect无法很好地执行此操作 这就是我所拥有的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
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]);
谢谢你,伊凡:/!