React 的渲染问题

1.if判断

import React, { Component } from 'react'
class ChildrenTwo extends Component {
    constructor(props,context) {
        super(props,context)
        this.state = {
            isno:2
        }
    }
    render () {
        if (this.state.isno===1) {
            return (
                

这是子组件2,条件判断是1,若果isno是1的话,显示这句话

) }else{ return (

这是子组件2,条件判断是2,若果isno是2的话,显示这句话

) } } } export default ChildrenTwo

2.三木运算,$$同理

--这种方法相当于比if更细致一点,if可以判断代码块,三木用于判断部分

import React, { Component } from 'react'
class ChildrenTwo extends Component {
    constructor(props,context) {
        super(props,context)
        this.state = {
            isno:1
        }
    }
    render () {
    return (
        
{ this.state.isno===1?

这是子组件2,条件判断是1,若果isno是1的话,显示这句话

:

这是子组件2,条件判断是2,若果isno是2的话,显示这句话

}
) } } export default ChildrenTwo

---自己补充一点不要对 this.state 赋值,使用 this.setState() 更新 State:

// bad
this.state.foo = 'bar';
this.forceUpdate();

// good
this.setState({
  foo: 'bar'
})

3.循环的使用

import React, { Component } from 'react'
import { Link} from 'react-router-dom'
class ChildrenTwo extends Component {
    constructor(props,context) {
        super(props,context)
        this.state = {
            isno:1,
            btn:[
                {name:"当当1",path:"/url1"},
                {name:"当当2",path:"/url2"},
                {name:"当当3",path:"/url3"},
                {name:"当当4",path:"/url4"}
            ]
        }
    }
    handle=(val,e)=>{
    //(e) => this.selectedBtn(e)
    console.log(val)
        console.log(e)
    }
    /*注意:给onClick绑定的值应该是个函数[this.handle],
        而不是函数的执行结果[this.handle()], 很有区别的;这样写会全部打印出来,所以不行
        如果要涉及到传参,可以这样写:onClick={(e) => this.handle(e)}
    */
    render () {
        return (
            
{this.state.btn.map((item,index)=>{ return ( this.handle("123",e)}>{item.name} ) })}
) } } export default ChildrenTwo

4.className的问题

//1.多个样式跟平常写class一样
//2.如果是多个样式,并且有点样式需要动态添加,第一种是es6的语法,最好加个空格,第二种是大众的,一定要将这个数组拼接出来 否则无效
{item.name}
{item.name}

你可能感兴趣的:(React 的渲染问题)