[英]React class not rendering
我正在尝试遵循reactjs tic tac toe教程,但是当我尝试呈现页面并且有此代码时
import React from 'react'
import ReactDOM from 'react-dom'
import Game from '../components/Game'
document.addEventListener('DOMContentLoaded', () => {
ReactDOM.render(
console.log("render is working"),
<Game />,
document.getElementById('root'),
);
})
游戏类看起来像
import React from 'react'
import ReactDOM from 'react-dom'
import Board from './Board'
class Game extends React.Component {
render() {
console.log("Hooray, the game is working")
return (
<div className="game">
<div className="game-board">
<Board />
</div>
<div className="game-info">
<div>{/* status */}</div>
<ol>{/* TODO */}</ol>
</div>
</div>
);
}
}
export default Game
“渲染器正在向控制台打印输出,但是控制台日志中没有显示“万岁,游戏正在运行”,因此似乎出于某些原因未渲染Game类。 我正在使用内置webpacker的Rails在Rails上加载所有JavaScript
ReactDOM.render()
有两个参数:component和mount DOM元素。 您正在为第一个参数传递console.log
。
导致调用console.log
结果基本上是undefined
:
ReactDOM.render(
undefined, // <- react component
<Game />, // <- target
document.getElementById('root'), // < - useless
);
我很惊讶ReactDOM.render
不会引发错误,尽管您正在向它传递完全无用的参数。
首先,为什么要在事件监听器中包装ReactDom.render(...)
? 二,为什么要通过ReactDom.render(...)
传递console.log()
? 它应该仅包含两个参数:一个组件以及应该附加到其上的元素。 尝试删除console.log()
,如果仍然无效,请尝试删除包装了ReactDoom.render(...)
的事件侦听器。
您需要从ReactDOM渲染调用中删除控制台日志。
如果需要在组件中渲染,则可以这样做。
<div>
.....
{console.log('Inline console in render method')}
</div>
您的渲染应如下所示:
ReactDOM.render(<Game />, document.getElementById('root);
假设您的子组件作为“导出默认游戏”传递,并且您的HTML基本文件的ID为“ root”。
渲染仅需要两个参数。 第一个是要传入的组件,第二个是应放置其自身的目标。 您只需要在“ index.js”文件中执行此步骤。 无处。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.