当前位置: 首页 > 知识库问答 >
问题:

React-未正确渲染子对象

薛寒
2023-03-14

我看不到子组件内部的文本。子级呈现为大小为0x0且为空。

那是由路由器引起的吗?

这是我的代码:

App.js:

import React, { Component } from 'react';
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
import home from './pages/home/home';
import repoDetails from "./pages/repoDetails/repoDetails";

export default class App extends Component {
  render() {
      return (
              <Router>
                  <Switch>
                      <Route exact path="/" component={home}/>
                      <Route path="/:owner/:repo" component={repoDetails}>
                      </Route>
                  </Switch>
              </Router>
      );}}

REPODetails.js:

import React, {Component} from 'react';
import committersCard from '../../components/committersCard.js'

export default class repoDetails extends Component {

render() {
    return (
        <div>
            <committersCard/>
        </div>
    )}}

这是child committersCard.js:

import React, {Component} from 'react';
export default class committersCard extends Component {

render() {
    return (

        <div style={{height: '150px', width: '200px'}}>
            <h1>TEXT INSIDE THE CHILD COMPONENT</h1>
        </div>
    );}}

我用的是4号路由器。

共有3个答案

云长恨
2023-03-14

经验法则:每个组件名称都应该以大写字母开头

谢诚
2023-03-14

自定义元素必须以大写字母开头,类名也应该以大写字母开头

repotails.js:

import React, {Component} from 'react';
import CommittersCard from '../../components/committersCard.js'

export default class RepoDetails extends Component {

render() {
    return (
        <div>
            <CommittersCard />
        </div>
    )}}

代码ard.js

import React, {Component} from 'react';
export default class CommittersCard extends Component {
render() {
    return (
        <div style={{height: '150px', width: '200px'}}>
            <h1>TEXT INSIDE THE CHILD COMPONENT</h1>
        </div>
    );}}*

一个pp.js

import React, { Component } from 'react';
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
import home from './pages/home/home';
import RepoDetails from "./pages/repoDetails/repoDetails";

export default class App extends Component {
  render() {
      return (
              <Router>
                  <Switch>
                      <Route exact path="/" component={home}/>
                      <Route path="/:owner/:repo" component={RepoDetails} /> //fixed
                      </Route>
                  </Switch>
              </Router>
      );}}

原因是:

当一个元素类型以小写字母开头时,它引用一个内置组件,如or,并导致传递给React.createElement的字符串'div'或'span'。以大写字母开头的类型,如compile to React.createElement(Foo),并与JavaScript文件中定义或导入的组件相对应。

我们建议使用大写字母命名组件。如果您确实有一个以小写字母开头的组件,请在JSX中使用它之前将其分配给大写变量。

根据用户定义,组件必须大写

汲雅珺
2023-03-14

如果要使用自定义组件,它们必须以大写字母开头。

从官方文件

注意:组件名称始终以大写字母开头。

React将以小写字母开头的组件视为DOM标记。例如,表示一个HTMLdiv标记,但表示一个组件,需要欢迎才能进入范围。

你可以在这里阅读更多关于这个惯例背后的原因。

因此,将组件的名称替换为:

import React, {Component} from 'react';
import CommittersCard from '../../components/CommittersCard.js'

export default class RepoDetails extends Component {

render() {
    return (
        <div>
            <CommittersCard/>
        </div>
    )}}

import React, {Component} from 'react';
export default class CommittersCard extends Component {

render() {
    return (

        <div style={{height: '150px', width: '200px'}}>
            <h1>TEXT INSIDE THE CHILD COMPONENT</h1>
        </div>
    );}}
 类似资料:
  • 我有一个非常简单的Rails应用程序,它有一个react组件,只在特定页面(比如show页面)的现有div元素中显示“Hello”。 当我用它的网址加载相关页面时,它就工作了。我在页面上看到你好。 但是,当我之前在另一个页面上时(比如说索引页面,然后我使用Turbolinks进入显示页面,那么,组件不会被呈现,除非我来回移动。(返回索引页面并返回显示页面) 从这里开始,每次我来回走动,我可以说视图

  • 我正在创建Spring boot web Application。出于模板目的,我使用了thymeleaf。我正在创建单独的html页面片段,并从这些片段创建两个不同的布局。但是,当我连接内容页面时,我没有得到正确的输出。 请检查代码片段/ 视图解析器 目录结构 应用布局。html 页脚片段footer.html 使用此方法创建不同的片段。 主方法类aka startup 欢迎html 现在,当我

  • 在我的主类下面,我试图从搅拌机渲染一个obj. obj文件,在将其重新格式化为(据称)为我的渲染工作后,它会出现错误。我如何解决这个问题? 主要类: OBJLoader类: 类别模型: 类面: 对不起,如果这是过度的,我知道错误来自第85行,但我似乎不知道如何修复它。 OBJ文件示例(精简):

  • 对于使用Box2DDebugRenderer进行渲染Box2D调试,我有一些问题。我有两个正交摄像机,一个用于渲染世界(名为Cam),另一个用于HUD(healthBar,Armor,…)(名为hudCam)。 我试图渲染: > b2dr。渲染(世界,凸轮组合)- 我找不到一种方法来渲染Box2D完全像凸轮,看到所有机构的边缘。 如果有人理解我的问题,请帮助我! 谢谢。

  • 我有两个VBO,我试图渲染,它们在屏幕上应该有两个不同的位置。当我试图修改其中一个VBO的位置时,它会被转移到另一个VBOs。 示例-我更改了对象2的y位置,对象1和对象2现在都存在于该y位置。 我用于转换VBO的代码: 请注意位置,旋转,缩放都是Vector3fs,modelMatrix是well,模型矩阵。 此外,这是一个工具包。degToRad类似于数学。toRadians()类型的方法。

  • 问题内容: 我有一个这样的物体 我的密码 我在遍历对象时遇到麻烦。 获得的错误是这样的 我如何循环通过该对象,以便获得所获得的结果 提前致谢。任何帮助表示赞赏 问题答案: 您正在渲染数组,但是只能从react组件返回一个块,将map函数包装在div中