【问题标题】:Cannot print out object in ReactJS无法在 ReactJS 中打印出对象
【发布时间】:2018-03-01 05:02:47
【问题描述】:

我是 ReactJS 的新手。我想打印出状态对象中的图片和文字,但不知道为什么在系统没有显示任何错误的情况下它不起作用。以下是我的代码

import React, { Component } from 'react';

class Asgn6 extends Component {
  constructor(){
    super();
    this.state={
      content:[
        {srcImg:"../img/1.png", text:"Black"},
        {srcImg:"../img/2.png", text:"Blue"},
        {srcImg:"../img/3.png", text:"Green"}
      ]
    }
  }
  add=() => {

  }
  render() {
    return (
        <div>
        {this.state.content.map((obj, index)=> {
          return (
          <div key={index}>
          <img src={require(obj.srcImg)} alt={obj.text}/>
          <p>{obj.text}</p>
          </div>
          );
        })}
          );
        <button onClick={this.add}>Add</button>
        </div>



    );
  }

}

export default Asgn6;

【问题讨论】:

  • 添加按钮出现了吗?
  • 是的,按钮出现了,但没有 img 和 text

标签: reactjs


【解决方案1】:
<img src={obj.srcImg} alt={obj.text}/>

就这样做吧。

【讨论】:

  • 谢谢,但只有 alt 显示,图像仍然无处可寻。似乎 require() 给了我错误。该程序无需要求即可正常运行
【解决方案2】:

关于automatic semicolon insertion,您需要记住的第一条规则是将返回的任何内容保留在return 关键字之后的同一行。否则这个

return
  <div>
    <img src={require(obj.srcImg)} alt={obj.text}/>
    <p key={index}>{obj.text}</p>
  </div>

等价于

return;
  <div>
    <img src={require(obj.srcImg)} alt={obj.text}/>
    <p key={index}>{obj.text}</p>
  </div>

注意,return 后如何插入分号。

简单修复即可

return <div>
  <img src={require(obj.srcImg)} alt={obj.text}/>
  <p key={index}>{obj.text}</p>
</div>

或使用括号对您的退货进行分组:

return (
  <div>
    <img src={require(obj.srcImg)} alt={obj.text}/>
    <p key={index}>{obj.text}</p>
  </div>
)

【讨论】:

  • 谢谢。我已经按照你告诉我的方法进行了修复,但现在我收到错误“找不到模块”。 " 并且它突出显示了 img 标签。 img 标签有问题吗?
  • 你设置 webpack 来加载这样的图像了吗?看看这个stackoverflow.com/questions/32612912/…
猜你喜欢
  • 1970-01-01
  • 2022-08-05
  • 2017-11-03
  • 2017-01-29
  • 1970-01-01
  • 2015-11-28
  • 2017-06-03
  • 2016-03-13
  • 1970-01-01
相关资源
最近更新 更多