如何通过Next.js将环境变量在客户端获得?
我想将环境变量读取到Next.js,如何将数据传递到datadogrum.init
中?
// _app.tsx
import React from "react";
import { useEffect } from "react";
import type { AppProps } from "next/app";
import { datadogRum } from "@datadog/browser-rum";
export default function App({ Component, pageProps }: AppProps) {
useEffect(() => {
datadogRum.init({
applicationId: applicationID, // can't use process.env.NEXT_PUBLIC_DATADOG_APPLICATION_ID directly here
...
});
datadogRum.startSessionReplayRecording();
});
return (
...
);
}
App.getInitialProps = async () => {
return {
applicationID: process.env.NEXT_PUBLIC_DATADOG_APPLICATION_ID,
};
};
这样,无法获得applicationId
值。
I want to read environment variable into Next.js, how to pass data into datadogRum.init
?
// _app.tsx
import React from "react";
import { useEffect } from "react";
import type { AppProps } from "next/app";
import { datadogRum } from "@datadog/browser-rum";
export default function App({ Component, pageProps }: AppProps) {
useEffect(() => {
datadogRum.init({
applicationId: applicationID, // can't use process.env.NEXT_PUBLIC_DATADOG_APPLICATION_ID directly here
...
});
datadogRum.startSessionReplayRecording();
});
return (
...
);
}
App.getInitialProps = async () => {
return {
applicationID: process.env.NEXT_PUBLIC_DATADOG_APPLICATION_ID,
};
};
This way can't get the applicationID
value.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无需从
getInitialProps
传递环境变量。您可以在usefect
中直接访问它,您只需要确保process.env.next_public_datadog_application_id
在初始化datadogrum.init
之前定义打字冲突。You don't need to pass the environment variable from
getInitialProps
. You can access it directly inside theuseEffect
, you just need to make sureprocess.env.NEXT_PUBLIC_DATADOG_APPLICATION_ID
is defined before initialisingdatadogRum.init
to avoid typings conflicts.