Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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 服务器端渲染函数如何利用DB调用?_Reactjs_React Native_Next.js - Fatal编程技术网

Reactjs 服务器端渲染函数如何利用DB调用?

Reactjs 服务器端渲染函数如何利用DB调用?,reactjs,react-native,next.js,Reactjs,React Native,Next.js,由于它们需要在构建时间之后获取数据,我如何延迟上述函数的执行,直到收到数据 export async function getStaticPaths() { // get the paths we want to pre render based on products const paths = products.map((product) => ({ params: { slug: product.slug } })); console.log(p

由于它们需要在构建时间之后获取数据,我如何延迟上述函数的执行,直到收到数据

export async function getStaticPaths() {
  // get the paths we want to pre render based on products
 
  const paths = products.map((product) => ({
    params: { slug: 
      product.slug }
  }));
console.log(paths,"Paths in getStaticPaths()")
  return { paths, fallback: false };
}

export async function getStaticProps({ params }) {
  // get product data based on slug

  const product = products.filter((single) => single.slug === params.slug)[0];
  console.log(product,"In getStaticProps()")
  return { props: { product } };
}
在上面的示例中,
产品
包含导入的所有原始数据


我需要将此数据导入替换为返回数据的函数的导入,但由于调用尚未完成,结果为null。

您可以使用两个
useffect
挂钩,在第一次启动数据时,将其设置为状态
data
, 在第二个
useffect
中,您可以执行以下操作:

useffect(()=>
如果(数据){
//setLoader(错误)
}否则{
//setLoader(真)
},[数据])
在返回中,您将执行条件渲染:

if(加载){
返回()
}否则{
返回//您的组件
}

请用一个不适合你的例子详细说明你的问题!当前本地存储的数据有助于生成所需的路径。现在,当getStaticProps()和…..Path()使用空数据点时,从外部数据库调用数据,该数据库仅在几秒钟后可用,因为它尚未填充数据库数据。这样做会不会起作用??``//db.js export const db=createDb(config);//main.js从“./src/db/”导入{db};导出异步函数getStaticPaths(){const paths=await db.readDocument('PATH');返回{paths,fallback:true或false//请参阅下面的“fallback”部分};}``添加代码示例plz导入保存数据的变量之间的区别是什么,导入一个类,该类有一个函数,调用该函数时返回数据?另一方面,数据库调用是异步的,它将数据库值存储在一个单例中,然后我尝试访问这个单例。但是,由于上面的getStaticPaths()是在执行任何操作之前执行的,因此我使用null insided数据。难道不会发生同样的事情,或者等待(如上面代码中所述)会阻止这种情况发生吗?这是调用数据库api时的一种解决方案。getStaticProps和GetStaticPath如何知道在执行之前何时接收数据?由于它们与react组件无关,因此挂钩或任何此类过程都无法工作。redux可用于将组件连接到普通js文件。难道“导出异步函数”无法从connect语句读取数据吗?您可以直接读取存储状态,而无需使用
connect
函数,使用
const unsubscribe=store.subscribe(()=>true);const yourState=store.getState().yourState;取消订阅()在构建时redux存储不是不可用吗?接下来是getStaticPath()和getStaticProps()。Js方法,是否在构建时执行?