赞
踩
如下:
//src/index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './app'
ReactDOM.render( < App / > , document.getElementById('root'))
//src/app.jsx
import React from 'react'
import Nav from './nav'
class App extends React.Component {
render () {
const nav1 = ["面条", "煎饼", "火锅"];
return (
<div>
<Nav NavNav={nav1} title="饭" />
</div >
)
}
}
export default App
props不能更改,NavNav里的数据属于app里,在nav里不能更改,只能使用。
//src/nav.jsx import React from 'react' export default class Nav extends React.Component { render () { // console.log(this.props.NavNav) return ( <div> <h3>{this.props.title}</h3> <ul> {this.props.NavNav.map((element, index) => { return <li key={index}>{element}</li> })} </ul> </div> ) } }
在 JavaScript class 中,每次你定义其子类的构造函数时,都需要调用 super 方法。因此,在所有含有构造函数的的 React 组件中,构造函数必须以 super(props) 开头。
如下:
import React from 'react' class Home extends React.Component { constructor(props) { super(props); this.state = { value: 1, }; } render() { return ( <div> <button onClick={() => { // 改变 this.setState({ value:2 }) }}> {/* 使用 */} {this.state.value} </button> </div > ) } } export default Home
import React from 'react' class Home extends React.Component { // State 的更新是异步的 constructor(props) { super(props); this.state = { value: 1, num: 0 }; } addClick1 = () => { const { num } = this.state; this.setState({ num: num + 1 }); this.setState({ num: num + 1 }); //只执行最后一个 } addClick2 = () => { this.setState(pre => ({ num: pre.num + 1 })); //小括号括起{}来,解析出代码块 this.setState(pre => ({ num: pre.num + 1 })); //function进入队列,依次执行 } render() { return ( <div> <button onClick={this.addClick1} >{this.state.num}</button> <button onClick={this.addClick2} >{this.state.num}</button> </div > ) } } export default Home
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。