您需要像这样将require() 传递给source 属性:
const ImageDetail = props => {
return (
<View>
<Image source={require('/storage/emulated/0/saved_signature/signature.png')} />
<Text>{props.title}</Text>
</View>
);
};
确保您的路径也正确,因为它不是../storage 或../../storage。
所有这些都将在您的子组件中,例如,请记住您没有指定您所在的组件。确保图像呈现后,您需要转到父组件并将您选择的任何名称的 prop 传递给它,例如 imageSource。
然后你再次传入那个 require 和相对路径:
const ImageScreen = () => {
return (
<View>
<ImageDetail
title='Signature One'
imageSource={require("/storage/emulated/0/saved_signature/signature1.png")}
/>
<ImageDetail
title='Signature Two'
imageSource={require("/storage/emulated/0/saved_signature/signature2.png")}
/>
<ImageDetail
title='Signature Three'
imageSource={require("/storage/emulated/0/saved_signature/signature3.png")}
/>
</View>
);
};
然后我会在该子组件上控制台记录道具,如果您的设置与上面的内容相似,您应该会看到:
{title: "Signature One", imageSource: 3}
{title: "Signature Two", imageSource: 4}
{title: "Signature Three", imageSource: 5}
3、4、5 将是一个标识符,所以不用担心,但我把它放在那里以防万一。
现在,在您的子组件中,您可以从您的 source={} 属性中删除该 require('/storage/emulated/0/saved_signature/signature.png') 并将其替换为 <Image source={props.imageSource} /> 或您所称的任何名称。