问题:我正在研究一个项目。价值来自另一个组成部分。根据这些值,我想在“渲染”中添加元素。但是我做不到。这是函数:
isVisible = () => {
this.props.contents.contents.map( value => {
console.log(value)
console.log(Object.values(value)[0])
if(Object.keys(value)[0] === "mushroom" ){
if(Object.values(value)[0] === true){
alert("true")
return(<div style={{
position: "absolute",
top: "0",
left: "0",
width: "100px",
height: "100px",
background: 'red',
opacity: "1",
zIndex: "100"
}}>...</div>)
}
}
})
}
道具没有问题。变成事实了。因此,“警报”有效。但是我不能在这里打印回信:
render(){
return(
<Wrap>
<div className={classes.imageBox}>
<div className={classes.image}>
{this.isVisible()}
</div>
</div>
</Wrap>
)
}
如何解决此问题?
答案 0 :(得分:1)
它没有返回任何东西
isVisible = () => {
this.props.contents.contents.map(...) . <-- this is not returned
}
,因此当您调用isVisible时它返回未定义。您需要添加return语句或放在方括号中。
如此
isVisible = () => {
return this.props.contents.contents.map(...)
}
或
isVisible = () =>
this.props.contents.contents.map(...)