我将道具从一个无状态函数传递给另一个,我得到一个引用错误,说道具是未定义的 . 这是父函数:
const Home = () => {
return (
<App>
<BackgroundImage url="mercedes-car.jpg">
<h1>Test</h1>
</BackgroundImage>
</App>
)
}
这是BackgroundImage函数:
const Image = styled.div`
background-image: ${props => url(props.imageUrl)};
background-size: cover;
height: 100%;
width: 100%;
`;
const BackgroundImage = (props) => {
console.log(props)
return (
<Image imageUrl={ props.url }>
{ props.children }
</Image>
)
}
错误是url未定义;但是,当我在console.log(props)时,我得到一个带有url和children的对象 . 任何方向或解释为什么这个错误投掷将不胜感激!
2 回答
我猜你的意思
成为
因为该函数的结果需要是一个字符串 . 否则你试图调用一个名为
url
的函数 .你有一个范围问题 . 将其更改为:
基本上道具不适用于您的图像,因为styled.div不是具有道具的普通反应组件 .
另一种方法是保持你的代码不变,但是在return函数中设置背景图像:(并从styled.div中删除它)