在某些组件中使用 usercentric(通过 gtm)和 id 时出错
2021-08-13
647
我们尝试从我们自己实施的 CMP 切换到 usercentric。因此,我们通过 gtm 在我们的页面上集成了 usercentric。我意识到该元素仅显示在我们的子页面上,在我们的根页面上不可见。
经过两天的移除和再次添加组件。我发现当我从组件中删除
id={"process">
时,usercentric 能够加载。我多次在我们的页面上使用
id
标签来执行 smoothscroll 插件。但是,只有应用于流程的和应用于联系人部分的才会导致以下错误。
在我删除插件以及除插件之外的几乎所有 id 后,出现以下错误:
Uncaught TypeError: Cannot read property 'REACT_APP_SC_ATTR' of undefined
at bundle_legacy.js:1
at bundle_legacy.js:15
我们正在使用带有 Typescript 的 Gatsby Stack 和
gatsby-plugin-smoothscroll
进行滚动。
我们还通过 Gatsby 插件实现了 gtm:
gatsby-plugin-google-tagmanager
import React from "react";
import colors from "../../../../config/GlobalStyles";
import {Container, Grid, makeStyles, Typography} from "@material-ui/core";
// @ts-ignore
import infoGraphic from "../../../../images/root/process/infographic.webp";
import {graphql, useStaticQuery} from "gatsby";
import Markdown from "markdown-to-jsx";
const useStyles = makeStyles((theme) => ({
contentWrapper: {
paddingTop: "50px"
},
container: {
paddingTop: "50px",
backgroundColor: "white",
},
headline: {
fontWeight: 600,
color: colors.main
},
secondHeadline: {
fontFamily: "Mackay",
color: colors.main,
fontWeight: 400,
},
infoGraphicWrapper: {
overflow: "scroll",
[theme.breakpoints.down('sm')]: {
marginTop: "50px",
},
"& img": {
[theme.breakpoints.down('sm')]: {
maxWidth: "200%"
}
}
}
}));
export default function ProcessSection() {
const classes = useStyles();
const data = useStaticQuery(query);
return (
<section>
<Container className={classes.container}>
<Typography variant={"h2"} component={"h2"} className={classes.headline}>
<Markdown>
{data.strapiHome.process.headline}
</Markdown>
</Typography>
<Typography variant={"h2"} component={"h2"} className={classes.secondHeadline}>
<Markdown>
{data.strapiHome.process.secondHeadline}
</Markdown>
</Typography>
<Grid container className={classes.contentWrapper} justify={"space-between"}>
<Grid item xl={4} lg={4} md={4} sm={12} xs={12}>
<Typography component={"div"} variant={"body2"}>
<Markdown>{data.strapiHome.process.text}</Markdown>
</Typography>
</Grid>
<Grid item xl={7} lg={7} md={7} sm={12} xs={12} className={classes.infoGraphicWrapper}>
<img src={infoGraphic} alt={"alt text"} />
</Grid>
</Grid>
</Container>
</section>
);
}
const query = graphql`
query {
strapiHome {
process {
headline
secondHeadline
text
}
}
}
`;
我不知道这是从哪里来的,也不知道环境变量是什么意思。
2个回答
我认为您的问题不在代码中。在我看来,它与
.env
文件有关。
如果您在某处使用
process.env.REACT_APP_SC_ATTR
,请检查 .env 文件以查看是否定义了
REACT_APP_SC_ATTR
。
.env
文件就像一个全局配置。我们通常会添加服务器网址、端口、生产模式等内容。
Chuck
2021-08-13
我可以通过从我的组件中删除所有 ID 并再次添加其中一些来解决该问题。
我不明白为什么会发生这种情况。
FloHiwg
2021-08-16