Truyền props sang child Component trong ReactJs

0



App.js

class App extends Component {
    constructor(props) {
        super(props);
        // set gia tri state  hienthifrom:false       
     this.state={
            hienthifrom:false        }
      }
    hienthibutton=()=>{
        // function khi click sẽ ph định giá trị ca hienthifrom     
      this.setState({hienthifrom:!this.state.hienthifrom})
    }
  render() {
    return (
      <div>
        <div className="jumbotron text-center">
          <h1>My First Bootstrap Page</h1>
        </div>
        <div className="container">
            {/*truyn 2 props sang component Search là Ketnoi và ShowF*/}
            {/*1 : truyn props function ()=>this.hienthibutton()*/}
            {/*2 : truyn props giá trị state this.state.hienthifrom */}
            <Search Ketnoi={()=>this.hienthibutton()} ShowF={this.state.hienthifrom}/>
          <div className="row">
            <div className="col-sm-9">
              <Table />
            </div>
            <Panel ShowF={this.state.hienthifrom}/>
          </div>
        </div>
      </div>
    );
  }
}
export default App;

Search.js


class Search extends Component {
    constructor(props) {
        super(props);
    }
    Btuon =()=>{
        // check gia tri props ShowF  Conponent cha là App     
        // onClick={()=>this.props.Ketnoi()}
        //gọi props  Component cha có thuộc tính KetNoi  dạng arow function      
    if(this.props.ShowF===true){
            return (<div onClick={()=>this.props.Ketnoi()} className="btn  btn-outline-secondary">Đóng lại</div>);
        }else{
            return (<div onClick={()=>this.props.Ketnoi()} className="btn btn-outline-info">Thêm mới</div>);
        }
    }
    render() {
        return (
            <div>
            <div className="btn-group">
            <input style={{width:"765px"}} type="text" className="form-control" placeholder="Nhập từ khóa" />
              <button className="btn btn-secondary" type="button">
                <i className="fa fa-search" />
              </button>
              <hr/>

            </div>
            {this.Btuon()}
         </div>
        );
    }
}
export default Search;

Tương tự form khác check props 

PanelRender2 =()=>{
    if(this.props.ShowF===true){
        return (
            <div className="card text-left">
                <div className="card-header">Thêm mới</div>
                <div className="card-body text-primary">
                    <div className="form-group">
                        <input type="text" className="form-control" placeholder="Tên User" />
                    </div>
                    <div className="form-group">
                        <input type="text" className="form-control" placeholder="Điện thoại" />
                    </div>
                    <div className="form-group">
                        <select className="custom-select" required>
                            <option value="">Chọn quyn mặc định</option>
                            <option value="1">Admin</option>
                            <option value="2">Mod</option>
                            <option value="3">Normal</option>
                        </select>
                    </div>
                    <div className="form-group">
                        <button className="btn btn-block btn-success">Thêm sMơi</button>
                    </div>
                </div>
            </div>
        );
    }
}

demo Truyền props từ component cha sang con

Tags

Post a Comment

0Comments
Post a Comment (0)