【问题标题】:Why isn't the fourth component rendering [duplicate]为什么第四个组件没有渲染[重复]
【发布时间】:2018-08-07 13:34:09
【问题描述】:

抱歉,缩进很糟糕,但为什么不是关于组件渲染的第四个。我已经尝试了一切,甚至尝试在单独的文件中编写有关组件的内容,但结果是相同的。在App.js 中,第三类组件大约是我在index.js 中导出和导入的,就像Rcomp1 组件一样,渲染效果很好。

App.js

import React, { Component } from 'react';

import 'font-awesome/css/font-awesome.min.css';
import { ProgressBar } from 'react-bootstrap';


import './App.css';
//everything css

var ele;
var col;
var f;

class App extends Component {
  constructor(props) {
    super(props);
    ele = this.props.imgUrl;
    col = this.props.colour;
  }

  render() {
    console.log(ele);
    var font = {
      fontFamily: "Times New Roman"
    }

    var divStyle = {
      backgroundColor: col,
      height: 390
    };

    var divs = {
      height: 390,
      backgroundColor: col
    };

    var newde = {
      backgroundImage: `url(${ele})`,
      height: 390
    };

    return (
      <div className="App">
        <div className="container-fluid">
          <div className="row" style={divs} >
            <div className="col-xs-6 " style={divStyle} >
              <div className='padding' style={newde}></div>
            </div>
            <div className="col-xs-6 Back">
              <p className="font">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
            </div>
          </div>
        </div>
      </div>
    );
  }
}

var c;

class Rcomp1 extends Component {
  constructor(props) {

    super(props);
    f = this.props.fa;
    c = this.props.colour;
  }

  render() {
    var tyle = {
      backgroundColor: this.props.bg,
      height: 360,
      color: c
    };

    return (
      <div>
        <div className='container-fluid'>
          <div className='row' style={{ height: 360 }}>
            <div className='col-xs-8 ' style={tyle}>
              <div className='marg marg3'>
                <p className='font2'><strong>Information about my skills.</strong></p>
                <p className='font2'><strong>{this.props.skill1}</strong></p>
                <ProgressBar className="wid" bsStyle="success" now={this.props.ski1} />
                <p className='font2'><strong>{this.props.skill2}</strong></p>
                <ProgressBar className="wid" bsStyle="success" now={this.props.ski2} />
                <p className='font2'><strong>{this.props.skill3}</strong></p>
                <ProgressBar className="wid" bsStyle="success" now={this.props.ski3} />
              </div>
            </div>
            <div className='col-xs-4' style={{ backgroundColor: this.props.bg, height: 360 }}>
              <div className='marg2  marg4' style={{ backgroundColor: this.props.bg }}>
                <i className={" fa fa-5x " + " " + f + " fs text-primary"} style={{ backgroundColor: this.props.bg }}></i>
              </div>
            </div>
          </div>
        </div>
      </div>
    );
  }
}

class about extends Component {
  render() {
    return (
      <div className='container-fluid'>
        hellow world
            <div className='col-xs-4'>
          Hello
            </div>
        <div className='col-xs-5'>
          World
            </div>
      </div>
    );
  }
}

export default App;
export { Rcomp1 };
export { about };

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { Rcomp1 } from './App';
import { about } from './App';
import './index.css';
import r from './r.jpeg';
import { Navbar } from 'react-bootstrap';
import { NavbarHeader } from 'react-bootstrap';
import { DropdownButton } from 'react-bootstrap';
import { NavbarBrand } from 'react-bootstrap';
import { MenuItem } from 'react-bootstrap';
import { NavBarToggle } from 'react-bootstrap';
import { Nav } from 'react-bootstrap';
import { NavDropdown } from 'react-bootstrap';
import { NavItem } from 'react-bootstrap';

import 'font-awesome/css/font-awesome.min.css';

ReactDOM.render(
  <div><App imgUrl="https://www.hrii.tk/skate.webp" colour="#FA9F1B" />
    <Rcomp1 fa={"fa-linkedin"} colour={'#FFFFFF'} bg={'#263238'} skill1={'GITHUB'} ski1={25} skill2={'HTML5'} ski2={50} skill3={'BOOTSTRAP'} ski3={30} />
    <App imgUrl="https://www.hrii.tk/tri1.webp" colour='#3E384F' />
    <Rcomp1 fa={"fa-github-square"} colour={"#FFFFFF"} bg={'black'} skill1={'C/C++'} ski1={85} skill2={'PYTHON'} ski2={70} skill3={'JQUERY'} ski3={40} />
    <about />
  </div>,
  document.getElementById('root')
);

ReactDOM.render(
  <div style={{ backgroundColor: '#F99F1C' }}>
    <Navbar inverse collapseOnSelect className='fon'>
      <Navbar.Header>
        <Navbar.Brand>
          <a href="#brand" className='fon fon2'>Hrii.tk</a>
        </Navbar.Brand>
        <Navbar.Toggle />
      </Navbar.Header>
      <Navbar.Collapse>
        <Nav>
          <NavItem eventKey={1} href="#">
            Link
            </NavItem>
          <NavItem eventKey={2} href="#">
            Link
            </NavItem>
          <NavDropdown eventKey={3} title="Dropdown" id="basic-nav-dropdown">
            <MenuItem eventKey={3.1}>Action</MenuItem>
            <MenuItem eventKey={3.2}>Another action</MenuItem>
            <MenuItem eventKey={3.3}>Something else here</MenuItem>
            <MenuItem divider />
            <MenuItem eventKey={3.3}>Separated link</MenuItem>
          </NavDropdown>
        </Nav>
        <Nav pullRight>
          <NavItem eventKey={1} href="#">
            Link Right
            </NavItem>
          <NavItem eventKey={2} href="#">
            Link Right
            </NavItem>
        </Nav>
      </Navbar.Collapse>
    </Navbar>;
  </div>,
  document.getElementById('navbar')
);

【问题讨论】:

  • 对于 React 应用来说,这是一个糟糕的应用结构。你是从哪里学会这样设置的?您应该只有一个ReactDOM.render,它应该渲染出您的主要&lt;App /&gt; 组件。所以你在第一次渲染中拥有的所有东西都应该被移动到一个名为MainHome 的单独组件中,然后它应该有Nav 的东西以及所有&lt;App&gt;&lt;Rcomp&gt; 组件。
  • 对不起,我刚开始学习,谢谢你告诉我我对这个有点陌生,下次我会遵循你告诉的结构

标签: reactjs react-component


【解决方案1】:

这是因为所有组件都必须以大写字母开头!因此,如果您将class about extends Component 更改为class About extends Component,那么它将起作用。您还需要将您的导出和导入更新为&lt;About /&gt;

【讨论】:

  • 谢谢它的工作,我不知道所有组件都必须以大写字母开头
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 2020-03-02
  • 2020-09-03
  • 2020-09-30
  • 2020-06-16
  • 2014-08-20
  • 2011-03-01
相关资源
最近更新 更多