为什么React.DOM是未定义的?

时间:2018-09-23 18:51:39

标签: javascript reactjs

反应16.5.2
我正在通过一本书学习React,并尝试使用``清晰''React的工厂(即不在JSX中)。我尝试使用React构建的工厂之一,但出现了问题:

@Override
public void onBackPressed() {
    int currentItem = viewPager.getCurrentItem();
    if (currentItem != 0) {
        viewPager.setCurrentItem(currentItem - 1, true);
    } else {
        super.onBackPressed();
    }
}

为什么会发生?

UPD

这是通过React和Redux学习React Functional Web开发的屏幕:

enter image description here

2 个答案:

答案 0 :(得分:3)

您必须使用React.createElement而不是React.DOM来创建元素

(() => {    
    const my_h1 = React.createElement('h1',null,"Stuff")
    ReactDOM.render(React.createElement(my_h1),document.getElementById('root'))
})()

此外,对于React中的最新版本,React.DOM无效,因此您需要在脚本中包含Dom-factories

<script src="https://unpkg.com/react-dom-factories@1.0.0/index.js"></script>

然后到处将React.DOM替换为ReactDOMFactories

例如

ReactDOMFactories.h1(null, "Hello World!")

此更改于2017年6月在15.6.0版附近引入。

答案 1 :(得分:0)

您要实现的目标是:

(() => {
    const my_h1 = React.createElement("h1", null, "Stuff");
    ReactDOM.render(my_h1, document.getElementById('root'));
})()