【问题标题】:map function with array of objects returns first value only in Reactjs具有对象数组的映射函数仅在 Reactjs 中返回第一个值
【发布时间】:2020-01-06 15:54:02
【问题描述】:

我想在一个循环中一个接一个地打印来打印videos_title。但是这个组件只打印名字(流行电影)。 组件类

class Main extends Component {
  constructor(props) {
    super(props);
  }
    render() {
      var items = this.props.items;
      console.log(items)
      let imgUrl = "https://hostname/t/p/original";
        return (
            <div className="container">      
                <MainTopBanner />
                {items && items.map((item, index) => {
                  var results = item.results;
                  return (
                    <div key={index} className="row text-center">
                      <h5>{item.videos_title}</h5>
                    </div>
                  );
                })}
            </div>
        );
    }
}

export default Main;

items 是一个对象数组

console.log(items);
[{…}]
0: {page: 1, total_results: 10000, total_pages: 500, results: Array(20), videos_title: "Highest Rated Movies"}
1: {page: 1, total_results: 10000, total_pages: 500, results: Array(20), videos_title: "Popular Movies"}

【问题讨论】:

  • 表达式 items && items.map() 是一个布尔连词。它的值是第一个为真的值。
  • @danh 最后一项的值为真,如果第一项为真,或第一项为假
  • 你确定它不起作用吗?工作正常:codesandbox.io/s/…也许你的风格隐藏了一个项目?
  • @TKoL 非常正确,抱歉。我的 ands 和 ors 在喝咖啡之前就混在一起了。
  • 换句话说,布尔连词返回第一个 false-y 值,或者,如果没有 false-y,则返回最终值。这也适用于多个调用,例如A &amp;&amp; B &amp;&amp; C &amp;&amp; D &amp;&amp; ...

标签: javascript arrays reactjs react-router


【解决方案1】:

您可能必须设置状态,然后将数据从 url 获取到类似这样的状态.. (this.setState([values]: e.target.value),之后您可以映射状态

Refer this thread

【讨论】:

    猜你喜欢
    • 2021-10-27
    • 2012-06-12
    • 2017-05-14
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2017-03-13
    • 2019-07-06
    相关资源
    最近更新 更多