【问题标题】:Logic inside loop not working on ReactJs循环内的逻辑不适用于 ReactJs
【发布时间】:2015-09-24 16:09:46
【问题描述】:

循环内的条件似乎没有被调用或不起作用:

let events = eventData.map(( timelineEvent ) => {
      let directions;
      if (timelineEvent % 2 == 0) {
        directions = "direction-r";
      } else {
        directions = "direction-l"
      }
      return (
        <TimelineEvent 
          type = {timelineEvent.type}
          time = {timelineEvent.time}
          title = {timelineEvent.title}
          place = {timelineEvent.place}
          location = {timelineEvent.location}
          description = {timelineEvent.description}
          direction = {directions}>
          <div>gallery</div>
          <TimelineEditButton
            deleteClick={timelineEvent.id} 
            dataId={ timelineEvent.id}
            editClick={this.openPartial.bind(this, "editEventPartial")} />
        </TimelineEvent>
      );
    });

数据呈现,但由于某种原因,条件似乎没有任何影响。有什么帮助吗?谢谢

【问题讨论】:

    标签: javascript arrays reactjs


    【解决方案1】:

    您正在查询timelineEvent 上的对象属性(例如timelineEvent.type),但您希望也能够在该对象上使用模运算符。模数运算符应与数字一起使用。这就是你的条件没有得到满足的原因。

    您可以看到,在对象上调用模运算符并使用“非严格”相等运算符== 将始终导致错误。以下是我控制台的输出,例如:

    编辑

    如果您需要索引,请执行以下操作:

    let events = eventData.map((timelineEvent, i) => {
      if(i % 2 === 0) {
        // do something
      }
    

    【讨论】:

    • 有没有办法获取当前数组项的索引?
    猜你喜欢
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 2015-10-08
    相关资源
    最近更新 更多