javascript - ReactJS中仅基于字符串选择组件,无需切换

标签 javascript reactjs

这基本上就是我想做的事情:

import image_a from './a.jpg';
import image_b from './b.jpg';
import image_c from './c.jpg';

class Title extends Component {
  render() {
    // other code here, this.props.param = some string

    var letters = [];
    for (var i = 0; i < this.props.param.length; i++) {
      var componentName = "image_" + this.props.param[i];
      letters.push(<img src={componentName}></img>); // DOESNT WORK
    }

    // other code here
  }
}

我有一堆图像,我想从字符串参数动态渲染它们。我可以做一系列

if (this.props.text[i] === 'a') {
    letters.push(<img src={image_a}></img>);
}
if (this.props.text[i] === 'b') {
....

我的方法可以通过一些调整来实现吗?或者我是否必须基本上求助于一系列条件语句?

最佳答案

创建一个包含所有图像的对象的文件:

export const images = {img1: require('./img1.jpg')}

那么你可以这样做

import images from './images';

class Title extends Component {

render () {

  this.props.params.map((value,index)=> !images[value]
    ? null
    : <img src={images[value]} key={index} />
  ));
  }
}

请注意,我假设 value 是一个字符串,并且在条件渲染时应返回 null(使用 if)
您还可以使用 for 循环if 语句 但我更喜欢这种方式

关于javascript - ReactJS中仅基于字符串选择组件,无需切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50264644/

相关文章:

javascript - 是否可以通过用户脚本检测页面修改?

reactjs - ReactJS 应用程序中的配置文件

Reactjs删除拼写检查属性

javascript - reducer 看不到一项特定操作 [react-redux]

javascript - Jquery 克隆修复

javascript - 旋转 8x8 位矩阵的高效 JavaScript 方法,由 8 个十六进制值表示

javascript - 我如何让我的 Accordion 打开 & glyphicon 在点击时旋转并在重新点击时反转

javascript - 如何避免在 konva 中捕捉期间矩形宽度或高度意外增长

javascript - 在传递 props 之前 react 变异状态

css - 阅读 CSS、ES6、React 中的更多功能