📌  相关文章
📜  什么是 {this.props.children} 以及何时应该使用它?

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

什么是 {this.props.children} 以及何时应该使用它?

在本文中,我们将了解 { this.props.children }。这里需要注意的重要一点是,children 是一个特殊的 prop,用于将数据从父组件传递给子组件,但这些数据必须包含在父组件的开始和结束标记中。这主要用于一些包装组件,我们必须通过它将数据传递到下一个组件以及我们传递其静态数据的数据(在大多数情况下),因为对于动态数据,还有另一种方法可以将 props 传递给组件。

例如,考虑下面的代码片段,它显示了如何将动态数据传递给任何组件。现在我们将通过一个示例来了解 {this.props.children } 的用法。

创建反应应用程序:

第 1 步:使用以下命令创建一个 React 应用程序:

npx create-react-app foldername

第 2 步:创建项目文件夹后,使用以下命令进入该文件夹:

cd foldername

第三步:运行开发服务器:

npm start

项目结构:它看起来像这样。

示例:在相应的文件中写下以下代码。

Filename-App.js:我们创建了一个对象数组,代表特定主题的项目描述,并将用户重定向到打开相应文章的新选项卡。

App.js
import "./App.css";
import Card from "./Component/Card";
  
function App() {
  let Projects = [
    {
      Topic: "Python projects",
      URL: "https://www.geeksforgeeks.org/make-notepad-using-tkinter/",
      title: "Make notepad using Tkinter",
    },
    {
      Topic: "Python projects",
      URL: "https://www.geeksforgeeks.org/color-game-python/",
      title: "Color game using Tkinter in Python",
    },
    {
      Topic: "OpenCV projects",
      URL: "https://www.geeksforgeeks.org/opencv-c-program-face-detection/",
      title: "OpenCV C++ Program for Face Detection",
    },
    {
      Topic: "OpenCV projects",
      URL: "https://www.geeksforgeeks.org/opencv-c-program-for-coin-detection/",
      title: "OpenCV C++ Program for coin detection",
    },
    {
      Topic: "Java projects",
      URL: "https://www.geeksforgeeks.org/opencv-c-program-face-detection/",
      title: "Generating Password and OTP in Java",
    },
    {
      Topic: "Java projects",
      URL: "https://www.geeksforgeeks.org/generating-password-otp-java/",
      title: "A Group chat application in Java",
    },
  ];
  return (
    
      {Projects.map((project, idx) => {         return (                    );       })}     
  ); }    export default App;


Card.js
import React, { Component } from "react";
import Text from "./Text";
  
export class Card extends Component {
  render() {
    return (
      
        

{this.props.Topic}

                                {this.props.title}                           
    );   } }    export default Card;


Text.js
import React, { Component } from "react";
  
export class Text extends Component {
  render() {
    return 
{this.props.children}
;   } }    export default Text;


Filename-Card.js:这里我们创建了一个 Card 组件并添加了一些基本样式。请注意,我们在Text组件之间包含了一个锚标记(这将在 Text 组件中称为 this.props.children)。

Card.js

import React, { Component } from "react";
import Text from "./Text";
  
export class Card extends Component {
  render() {
    return (
      
        

{this.props.Topic}

                                {this.props.title}                           
    );   } }    export default Card;

Filename-Text.js:这里的this.props.children将引用Card中传递的数据 组件内的打开和关闭Text组件(即 )。

文本.js

import React, { Component } from "react";
  
export class Text extends Component {
  render() {
    return 
{this.props.children}
;   } }    export default Text;

输出:应用程序按预期工作。