React项目使用CSS minmax函数报ReferenceError未定义如何解决
问题根因
你在样式对象中将CSS原生函数minmax、repeat写成了JS函数调用形式,React解析样式对象时会尝试在JS作用域中查找对应函数执行,你没有定义minmax的JS函数,因此抛出未定义错误。所谓的「React可识别repeat函数」本质是巧合,大概率是你的项目依赖中恰好全局注入了同名JS函数,并非React原生支持该写法。
解决方案
- 方案1:使用MUI
sx属性/React行内style属性时,将gridTemplateColumns的取值改为完整CSS字符串
示例代码:<Grid container sx={{ gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))', gap: 2 }} > {/* 你的网格子元素 */} </Grid> - 方案2:如果使用CSS文件/CSS module定义样式,直接写原生CSS语法即可
示例代码:
后续直接给Grid组件添加.custom-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }className="custom-grid"属性即可生效。
注意事项
所有CSS原生函数(包括calc、clamp、repeat、minmax等)在React样式对象中使用时,都需要写在字符串格式的属性值内,不要拆分为JS函数调用形式,避免JS解析器将其识别为JS函数执行。
内容的提问来源于stack exchange,提问作者ADG
相关产品推荐
相关产品推荐

