javascript - react map 功能如果其他条件

标签 javascript reactjs

我正在尝试使用 map 功能添加条件以显示电子邮件链接。

如果项目包含电子邮件,则显示它。

但是,它仍然无法正常工作,因为它应该显示“无链接”,控制台日志显示正确。如果有任何帮助,我将不胜感激。

import React, { Component } from 'react';

import listIcon from '../img/list-icon.svg';

class FaqList extends Component {
  state = {
    items: [
      { id: 1, name: "Lorem.", answer: "Lorem ipsum dolor sit amet, consectetur adipisicing elit.", email: "hello@email.com", expanded: false },
      { id: 2, name: "Lorem.", answer: "Lorem ipsum dolor sit amet, consectetur adipisicing elit.", expanded: false }
    ]
  };

  render() {
    let link;

    const isEmail = this.state.items.map(item => {
      if (item.email) {
        console.log(item.email); // showing email
        link = 'show link';
      } else {
        link = 'no link';
      }
    });

    return this.state.items.map(el => (
      <div
        key={el.id}
        onClick={() => this.handleToggle(el.id)}
        className={el.expanded ? "faq__columns--item--active faq__columns--item" : "faq__columns--item"}
      >

        <div className="faq__content">
          <p className="mb-0">{el.answer}</p>

          {link} // Template here

        </div>
      </div>
    ));
  }

}

export default FaqList;

最佳答案

不需要 isEmail,使用 jsx power 你可以像这样在渲染中的 map 函数中控制电子邮件链接的可见性:

render() {
  return (
    <div>
      {this.state.items.map(el => (
        <div
          key={el.id}
          onClick={() => this.handleToggle(el.id)}
          className={
            el.expanded
              ? 'faq__columns--item--active faq__columns--item'
              : 'faq__columns--item'
          }
        >
          <div className="faq__content">
            <p className="mb-0">{el.answer}</p>
            {el.email && <div>email: {el.email}</div>}
          </div>
        </div>
      ))}
    </div>
  );
}

关于javascript - react map 功能如果其他条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58520875/

相关文章:

javascript - location.reload() 在移动设备上无法正常工作

javascript - 在 div 上调用函数

javascript - 如何在 javascript 中启用/禁用表行中的输入字段而不影响其他行

javascript - 将类型定义添加到将 props 注入(inject)组件的 HOC

javascript - 如何将字符串添加到待办事项列表中的字符串列表 react

javascript - 更新 Electron 问题 : Uncaught ReferenceError: global is not defined

reactjs - 开 Jest 模拟 react 上下文

javascript - 为什么在类构造函数中使用 setState 方法时 React 会抛出错误?

javascript - 在解决 iOS 13 错误时检测何时启动 iOS Webclip

javascript - 您可以将 HTML5 <canvas> 元素用于 Video.js 视频吗?