我无法从函数中添加元素吗?

时间:2019-06-18 15:30:35

标签: javascript arrays reactjs function

问题:我正在研究一个项目。价值来自另一个组成部分。根据这些值,我想在“渲染”中添加元素。但是我做不到。这是函数:

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>
  )
} 

如何解决此问题?

1 个答案:

答案 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(...)