TSX CSS 条件渲染总是给出真实的陈述
TSX CSS conditional rendering always giving true statment
enter image description here
转换:aboutMe => (aboutMe ? "translateY(-500%)" : "translateY(0%)")
所以我曾经 运行 我的 React 项目并使用 MaterialUi 的 MakeStyles 将 CSS 包含在同一个 tsx 文件中,并受益于 JavaScript 代码来进行条件渲染。现在我正在将我的项目更改为 Gatsby,但由于某种原因,上面的代码无法正常工作,并且它一直认为该声明是真实的,尽管我正在控制台记录它并且它正在按预期方式工作。知道为什么这里的声明总是被认为是正确的吗?
import React from "react"
import { StaticImage } from "gatsby-plugin-image"
import { makeStyles } from "@material-ui/core/styles"
interface Props {
aboutMe: boolean
aboutMeOpen: () => void
}
export default function Background(props: Props) {
const classes = useStyles()
const { aboutMe, aboutMeOpen } = props
return (
<div className={classes.body}>
<div className={classes.effect}>
<StaticImage
src="../../images/backgroundEffect.png"
alt="effect"
quality={50}
draggable={false}
/>
</div>
</div>
)
}
const useStyles = makeStyles({
effect: {
zIndex: 10,
position: "absolute",
bottom: 0,
right: 0,
// userSelect: "none",
// height: "100%",
transition: "0.5s",
transform: aboutMe => ( aboutMe ? "translateY(100%)" : "translateY(0%)"),
},
})
您可以使用 2 个类名:
<div className={aboutMe ? classes.effect1 : classes.effect1 } >
或添加内联样式:
<div className={classes.effect} style={{trasform: aboutMe ? "translateY(100%)" : "translateY(0%)"}} >
或者您可以像这样将参数传递给 useStyles
:
const classes = useStyles({ aboutMe: props.aboutMe });
const useStyles = makeStyles({
effect: ({ aboutMe }) => ({
// ...
backgroundColor: aboutMe ? "translateY(100%)" : "translateY(0%)",
}),
});
enter image description here
转换:aboutMe => (aboutMe ? "translateY(-500%)" : "translateY(0%)")
所以我曾经 运行 我的 React 项目并使用 MaterialUi 的 MakeStyles 将 CSS 包含在同一个 tsx 文件中,并受益于 JavaScript 代码来进行条件渲染。现在我正在将我的项目更改为 Gatsby,但由于某种原因,上面的代码无法正常工作,并且它一直认为该声明是真实的,尽管我正在控制台记录它并且它正在按预期方式工作。知道为什么这里的声明总是被认为是正确的吗?
import React from "react"
import { StaticImage } from "gatsby-plugin-image"
import { makeStyles } from "@material-ui/core/styles"
interface Props {
aboutMe: boolean
aboutMeOpen: () => void
}
export default function Background(props: Props) {
const classes = useStyles()
const { aboutMe, aboutMeOpen } = props
return (
<div className={classes.body}>
<div className={classes.effect}>
<StaticImage
src="../../images/backgroundEffect.png"
alt="effect"
quality={50}
draggable={false}
/>
</div>
</div>
)
}
const useStyles = makeStyles({
effect: {
zIndex: 10,
position: "absolute",
bottom: 0,
right: 0,
// userSelect: "none",
// height: "100%",
transition: "0.5s",
transform: aboutMe => ( aboutMe ? "translateY(100%)" : "translateY(0%)"),
},
})
您可以使用 2 个类名:
<div className={aboutMe ? classes.effect1 : classes.effect1 } >
或添加内联样式:
<div className={classes.effect} style={{trasform: aboutMe ? "translateY(100%)" : "translateY(0%)"}} >
或者您可以像这样将参数传递给 useStyles
:
const classes = useStyles({ aboutMe: props.aboutMe });
const useStyles = makeStyles({
effect: ({ aboutMe }) => ({
// ...
backgroundColor: aboutMe ? "translateY(100%)" : "translateY(0%)",
}),
});