📜  反应JS |方法作为道具

📅  最后修改于: 2022-05-13 01:56:18.675000             🧑  作者: Mango

反应JS |方法作为道具

ReactJS是一个前端JavaScript库,用于构建由 Facebook 编写和维护的用户界面。我们知道ReactJS中的一切都是一个组件,并且为了将数据传递给这些组件,使用了props 。虽然像这样传递 props 很棒,但它在应用程序中肯定缺乏灵活性。例如,我们不能让孩子以这种方式与父母交流。尽管如此,这可以通过在ReactJS 中将方法作为 props 传递来完成。

要将方法用作道具,所有步骤都按顺序描述如下:

项目结构:该项目的结构将如下所示。

第 1 步:为此,让我们创建一个名为ParentComponent.js 的新组件。现在让我们在这个文件中为类组件制作基本布局。

父组件.js:

Javascript
import React, { Component } from 'react';
 
class ParentComponent extends Component {
    render() {
        return (
            
                                 
        )     } }   export default ParentComponent;


Javascript
import React, { Component } from 'react';
 
class ParentComponent extends Component {
    constructor(props) {
        super(props)
     
        this.state = {
            parentName:'Parent'
        }
 
        this.greetParent = this.greetParent.bind(this)
    }
     
    greetParent() {
        alert(`Hello ${this.state.parentName}`)
    }
 
    render() {
        return (
            
                                  
        )     } }   export default ParentComponent;


Javascript
import './App.css';
import React from 'react';
  
// imports component
import ParentComponent from './components/ParentComponent';
  
function App() {
  return (
    
      

-----------METHODS AS PROPS-------------

              
  ); }   export default App;


Javascript
import React from 'react';
 
function ChildComponent(props) {
    return (
        
                        
    ) }   export default ChildComponent;


Javascript
import React, { Component } from 'react';
import ChildComponent from './ChildComponent';
 
class ParentComponent extends Component {
    constructor(props) {
        super(props);
      
        this.state = {
            parentName:'Parent'
        }
  
        this.greetParent = this.greetParent.bind(this)
    }
      
    greetParent() {
        alert(`Hello ${this.state.parentName}`)
    }
  
    render() {
        return (
            
                             
        )     } }   export default ParentComponent;


第 2 步:现在让我们设置一个状态以在渲染此组件时向我们的父级打招呼,设置状态不是必需的,但我们这样做只是为了使应用程序更具动态性。另外,让我们创建一个事件,在渲染父组件时发出警报。不要忘记绑定事件,这样this关键字就不会返回“未定义”。

父组件.js:

Javascript

import React, { Component } from 'react';
 
class ParentComponent extends Component {
    constructor(props) {
        super(props)
     
        this.state = {
            parentName:'Parent'
        }
 
        this.greetParent = this.greetParent.bind(this)
    }
     
    greetParent() {
        alert(`Hello ${this.state.parentName}`)
    }
 
    render() {
        return (
            
                                  
        )     } }   export default ParentComponent;

第 3 步:我们不要忘记将它导入到我们的App.js文件中。

应用程序.js:

Javascript

import './App.css';
import React from 'react';
  
// imports component
import ParentComponent from './components/ParentComponent';
  
function App() {
  return (
    
      

-----------METHODS AS PROPS-------------

              
  ); }   export default App;


第 4 步:现在让我们制作一个新组件。我们称之为ChildComponent js ,并制作一个简单的功能组件。让我们制作一个简单的按钮,然后将方法greetParent()作为属性传递。本质上,按钮必须在单击时问候父级。

ChildComponent.js:

Javascript

import React from 'react';
 
function ChildComponent(props) {
    return (
        
                        
    ) }   export default ChildComponent;


第 5 步:不要忘记导入ChildComponent 父组件中。所以ParentComponent的最终代码 如下。

父组件.js:

Javascript

import React, { Component } from 'react';
import ChildComponent from './ChildComponent';
 
class ParentComponent extends Component {
    constructor(props) {
        super(props);
      
        this.state = {
            parentName:'Parent'
        }
  
        this.greetParent = this.greetParent.bind(this)
    }
      
    greetParent() {
        alert(`Hello ${this.state.parentName}`)
    }
  
    render() {
        return (
            
                             
        )     } }   export default ParentComponent;


输出: