Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 通过点表示法不接受盖茨比静态图像src值_Reactjs_Gatsby - Fatal编程技术网

Reactjs 通过点表示法不接受盖茨比静态图像src值

Reactjs 通过点表示法不接受盖茨比静态图像src值,reactjs,gatsby,Reactjs,Gatsby,我理解,不能将图像源作为函数的结果传递给StaticImage组件。然而,有谁能向我解释这两个例子之间的区别呢 从“React”导入React 从“盖茨比插件图像”导入{StaticImage}//以获取图像数据并进行渲染 导出默认函数示例(){ const imageSrc='../images/jonathan adams.jpg' 常数数据={ imageSrc:“../images/jonathan adams.jpg”, } 返回( {/*作品*/} {/*不起作用*/} ) } 一

我理解,不能将图像源作为函数的结果传递给StaticImage组件。然而,有谁能向我解释这两个例子之间的区别呢

从“React”导入React
从“盖茨比插件图像”导入{StaticImage}//以获取图像数据并进行渲染
导出默认函数示例(){
const imageSrc='../images/jonathan adams.jpg'
常数数据={
imageSrc:“../images/jonathan adams.jpg”,
}
返回(
{/*作品*/}
{/*不起作用*/}
)
}
一个是直接变量引用,后者引用相同的值,但使用点表示法。点符号是函数吗

点符号是函数吗

它不是一个函数,但不是一个常量值(至少在
StaticImage
组件的范围内它不能被视为常量),因此不能对它进行静态分析,因为最终,它的常量是
数据
,而不是它的嵌套属性。这就是为什么
imageSrc
有效,而
data
无效的原因

使用
静态图像的限制

图像在构建时加载和处理,因此 对如何向组件传递道具的限制。价值观需要 在构建时进行静态分析,这意味着您无法通过 从组件外部将它们作为道具,或使用 例如,函数调用。您可以使用静态值,也可以使用 组件局部范围内的变量

资料来源:


也就是说,您可能希望使用
imageSrc
方法,或者考虑使用接受动态值的
GatsbyImage
(它需要基于重构和GraphQL的方法)。

很好的解释!我猜这是传递的值的差异,而不是变量本身的差异。