javascript - 内联 CSS 样式未渲染 [以前为 : Component is not rendering its elements - react]

标签 javascript html d3.js reactjs

我正在学习 React。我正在尝试渲染以下组件(index.js 的内容)

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';

class d3Dash extends React.Component {
render() {
return (
<div style={{width:200,height:100,border:1,color:"black"}}>Hellow!!</div>
);
}
}

//==============================================================================

ReactDOM.render( <d3Dash/>, document.getElementById('d3Root') );

我的index.html文件如下,

<!DOCTYPE html>
<meta charset="utf-8">
<html lang="en">
<head>
<script async src="https://d3js.org/d3.v4.min.js"></script>
</head>

<body>
<div id="d3Root"></div>
</body>
</html>

我无法弄清楚为什么,但 div 不会将自己呈现为页面中的矩形框。然而,当我在 html 页面正文中插入相同的代码时,它确实将自身呈现为黑色矩形框。有人可以阐明如何调试这个吗?或者是 JSX 语法的问题?

作为补充,我的 package.json 是,

{
"name": "reactdash",
"version": "0.0.1",
"description": "D3js - react interactive visualization dashboard",
"main": "index.js",
"proxy": "http://'127.0.0.1':3002",
"keywords": [
"d3",
"react"
],
"author": "Russell Bertrand",
"license": "ISC",
"devDependencies": {
"babel-cli": "^6.24.1",
"eslint-plugin-flowtype": "^2.35.0",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-jsx-a11y": "^6.0.2",
"eslint-plugin-react": "^7.1.0",
"htmltojsx": "^0.2.6",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-scripts": "^1.0.10",
"webpack": "^3.2.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}

最佳答案

你成功了。这是 JSX 的问题。

在 React 中,您定义的任何组件都必须以大写字母开头,否则假定它们是普通的旧 html dom 节点。

将您的组件重新定义为 D3Dash

编辑:此外,请确保正确导出组件。类定义应为:

导出类 D3Dash 扩展了 React.Component

导出默认类 D3Dash 扩展 React.Component

取决于您导入该组件的方式。如果您已在通过 ReactDOM.render 挂载该组件的同一文件中声明此组件,请忽略。

编辑:此外,该 div 上的内联样式似乎与您的描述不一致。例如,color 是文本颜色的 css 属性,而 border 需要的不仅仅是一个数字。

您是否可能打算这样做:

<div style={{
  background: 'black',
  color: 'white',
  width: '200px',
  height: '100px',
  border: '1px solid black' }}>Hellow!!</div>

编辑:您的 index.html 缺少引入 webpack 包的脚本标记。

关于javascript - 内联 CSS 样式未渲染 [以前为 : Component is not rendering its elements - react],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45095366/

相关文章:

javascript - 基于可变数量的数组值创建对象

JavaScript - 检查对象的属性是否是数组

javascript - Angular + Require + Angular-resources 和 cookies 模块导致 "Error: No module: ngResource"

javascript - Node 和 Express : How to implement basic webhook server

php - 将表单数据插入一张表,然后将特定表单数据插入表2并更新枚举值?

javascript - d3 鼠标事件返回元素

javascript - 当前窗口居中弹出

html - 创建下划线过渡 CSS

javascript - 为什么我的 D3 堆积面积图翻转了?

javascript - 在 D3 v4 中,如何正确对齐轴?