React的SVG视图框错误

时间:2017-05-17 15:29:22

标签: reactjs svg

我不能为我的生活弄清楚这里出了什么问题。我有以下组件:

import React, { Component } from 'react';

class MySvg extends Component {
  render() {
    return (
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 {this.props.width} {this.props.height}"></svg>
    );
  }
}

export default MySvg;

当我尝试渲染组件时,出现以下错误:

Error: <svg> attribute viewBox: Expected number, "0 0 {this.props.widt…"...

我100%确定两个道具都是数字。我在console.log时有一个typeof号码,它们作为数字传递。这是React的问题吗?

2 个答案:

答案 0 :(得分:0)

问题是你的道具在字符串里面,因此没有评估和分配。请改用这样的东西。

<svg xmlns="http://www.w3.org/2000/svg" viewBox={"0 0 "+ this.props.width + " " + this.props.height}></svg>

通过这种方式,我们基本上通过在括号内连接道具和字符串来创建值。因为括号内是全部JavaScript。

答案 1 :(得分:0)

您还可以使用字符串插值以更易读的方式解决此问题:

<svg xmlns="http://www.w3.org/2000/svg" viewBox=`0 0 ${this.props.width} ${this.props.height}`></svg>