Reactjs 通过点表示法不接受盖茨比静态图像src值
我理解,不能将图像源作为函数的结果传递给StaticImage组件。然而,有谁能向我解释这两个例子之间的区别呢Reactjs 通过点表示法不接受盖茨比静态图像src值,reactjs,gatsby,Reactjs,Gatsby,我理解,不能将图像源作为函数的结果传递给StaticImage组件。然而,有谁能向我解释这两个例子之间的区别呢 从“React”导入React 从“盖茨比插件图像”导入{StaticImage}//以获取图像数据并进行渲染 导出默认函数示例(){ const imageSrc='../images/jonathan adams.jpg' 常数数据={ imageSrc:“../images/jonathan adams.jpg”, } 返回( {/*作品*/} {/*不起作用*/} ) } 一
从“React”导入React
从“盖茨比插件图像”导入{StaticImage}//以获取图像数据并进行渲染
导出默认函数示例(){
const imageSrc='../images/jonathan adams.jpg'
常数数据={
imageSrc:“../images/jonathan adams.jpg”,
}
返回(
{/*作品*/}
{/*不起作用*/}
)
}
一个是直接变量引用,后者引用相同的值,但使用点表示法。点符号是函数吗
点符号是函数吗
它不是一个函数,但不是一个常量值(至少在StaticImage
组件的范围内它不能被视为常量),因此不能对它进行静态分析,因为最终,它的常量是数据
,而不是它的嵌套属性。这就是为什么imageSrc
有效,而data
无效的原因
使用静态图像的限制
图像在构建时加载和处理,因此
对如何向组件传递道具的限制。价值观需要
在构建时进行静态分析,这意味着您无法通过
从组件外部将它们作为道具,或使用
例如,函数调用。您可以使用静态值,也可以使用
组件局部范围内的变量
资料来源:
也就是说,您可能希望使用
imageSrc
方法,或者考虑使用接受动态值的GatsbyImage
(它需要基于重构和GraphQL的方法)。很好的解释!我猜这是传递的值的差异,而不是变量本身的差异。