ReactDOM.render期望最后一个可选的`callback`参数是一个函数

时间:2016-09-20 21:57:32

标签: javascript reactjs babeljs react-jsx jsx

我是新手做出反应,我编写了下面的代码并获得了

ReactDOM.render Expected the last optional `callback` argument to be a function. `Instead received: Object` 

这是我的代码

var Stats = React.createClass({
    render: function () {
        return (
            <article className="col-md-4">
                <article className="well">
                    <h3>{this.props.value}</h3>
                    <p>{this.props.label}</p>
                </article>
            </article>
        )
    }
});

ReactDOM.render(
    <Stats value={"255.5K"} label={"People engaged"}/>,
    <Stats value={"5K"} label={"Alerts"}/>,
    <Stats value={"205K"} label={"Investment"}/>,
    document.getElementById('stats')
);

我做错了什么?

2 个答案:

答案 0 :(得分:5)

您正在提供ReactDom.render四个参数 - 三个Stats组件和元素。该函数在容器元素之前只需要一个元素。因此,您需要以某种方式将元素组合在一起,例如:

ReactDOM.render(
  <div>
    <Stats value={"255.5K"} label={"People engaged"}/>
    <Stats value={"5K"} label={"Alerts"}/>
    <Stats value={"205K"} label={"Investment"}/>
  </div>,
  document.getElementById('stats')
);

答案 1 :(得分:3)

您需要提供一个react元素作为第一个参数, mount节点作为第二个参数。所以你可以这样做。

const LotsOfStats = React.createClass({
    render: function () {
        return (
            <div>
                <Stats value={"255.5K"} label={"People engaged"}/>
                <Stats value={"5K"} label={"Alerts"}/>
                <Stats value={"205K"} label={"Investment"}/>
            </div>
        );
    }
});

ReactDOM.render(
    <LotsOfStats />,
    document.getElementById('stats')
);