从父组件使用方法

地亚哥

即使此函数更改了父状态,也可以在子组件中使用父组件中的函数吗?(此函数有一个参数)

我如何将其导出到子组件并使用它?

这是我要导出并在子组件中使用的功能:

function atualizarCadastros(novoCadastro){
setCadastros(cadastrosAtuais => {
  return[...cadastrosAtuais, novoCadastro]
})

}

父组件:

import './App.css';
import React, {useState} from 'react';
import {Table, Jumbotron, Button} from 'react-bootstrap'
import Formulario from './Formulario'
import renderCadastros from './renderCadastros'

function App() {
  
  const [Cadastros, setCadastros] = useState([{
    "id": 1,
    "nome": "Francisca Julia da Costa",
    "cpf": "457.696.936-65",
    "rg": "47.360.897-2",
    "data_nasc": "23/03/1944",
    "sexo": "Feminino"
  },
  {
    "id": 2,
    "nome": "Noah Felipe Silva",
    "cpf": "956.531.431-70",
    "rg": "40.974.782-8",
    "data_nasc": "11/07/1964",
    "sexo": "Masculino"
  },
  {
    "id": 3,
    "nome": "Alícia Rosângela Melo",
    "cpf": "066.291.353-18",
    "rg": "36.214.141-1",
    "data_nasc": "18/02/1978",
    "sexo": "Feminino"
  }]) 
  
  function atualizarCadastros(novoCadastro){
    setCadastros(cadastrosAtuais => {
      return[...cadastrosAtuais, novoCadastro]
    })
  }

  return (
  
  <Jumbotron style={{background: 'transparent'}}> 
    
    <Formulario/>

    <Table striped bordered hover size='sm'>
      <thead>
        <tr>
          <th>id</th>
          <th>Nome</th>
          <th>CPF</th>
          <th>RG</th>
          <th>Nascimento</th>
          <th>Sexo</th>
          <th></th>
        </tr>
      </thead>
      <tbody>
        {Cadastros.map(renderCadastros)}
      </tbody>
    </Table>

  </Jumbotron>
  
  );
}

export default App;

子组件:

import './App.css';
import React, {useRef} from 'react';
import {Button, Form, Col} from 'react-bootstrap'

function Formulario (){

  return(
    <div>
    <Form>
    <Form.Row>
      <Col>
        <Form.Label>Identificação</Form.Label>
        <Form.Control placeholder="Id" />
      </Col>
      <Col>
        <Form.Label>Nome Completo</Form.Label>
        <Form.Control placeholder="João Silva" />
      </Col>
      <Col>
        <Form.Label>CPF</Form.Label>
        <Form.Control placeholder="000.000.000-00" />
      </Col>
      <Col>
        <Form.Label>RG</Form.Label>
        <Form.Control placeholder="0.000.000" />
      </Col>
      <Col>
        <Form.Label>Data de Nascimento</Form.Label>
        <Form.Control placeholder="DD/MM/AAAA" />
      </Col>
      <Col>
        <Form.Label>Sexo</Form.Label>
        <Form.Control placeholder="Masculino/Feminino" />
      </Col>
    </Form.Row>
    </Form>
    <div  style={{display: 'flex', flexDirection: 'column', alignItems: 'center'}}>
      <Button style={{margin: '10px'}} variant="primary">Cadastrar</Button>
    </div> 
  </div>
  )  
}

export default Formulario

那就是应用程序中的其他组件,因此您可以看到所有内容:

import './App.css';
import React from 'react';
import {Button} from 'react-bootstrap'

function renderCadastros(cadastro, index){
    return(
    <tr id={cadastro.id} key={index}>
        <td>{cadastro.id}</td>
        <td contentEditable="true" suppressContentEditableWarning={true}>{cadastro.nome}</td>
        <td contentEditable="true" suppressContentEditableWarning={true}>{cadastro.cpf}</td>
        <td contentEditable="true" suppressContentEditableWarning={true}>{cadastro.rg}</td>
        <td contentEditable="true" suppressContentEditableWarning={true}>{cadastro.data_nasc}</td>
        <td contentEditable="true" suppressContentEditableWarning={true}>{cadastro.sexo}</td>
        <td align="center"><Button variant="danger">Excluir</Button></td>
    </tr>)
  }

  export default renderCadastros

凯尔·兰伯特

您可以通过prop将函数传递给子组件,如果函数改变了父组件中定义的状态,则当该状态改变时,React将重新渲染父组件及其所有子组件。

import React from "react";
import "./styles.css";

export default function App() {
  const [counter, setCounter] = React.useState(1);

  const increment = (num) => {
    setCounter(prev => prev + num)
  }

  return (
    <div>
      <div>Counter: {counter}</div>
      <Child increment={increment}/>
    </div>
  );
}

function Child({increment}) {
  handleClick() {
    increment(1)
  }

  return (
    <button onClick={handleClick}>Increment counter</button>
  )
}


本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用foreach从父组件调用子组件方法

来自分类Dev

react:从父组件调用子组件的方法

来自分类Dev

我可以在.jsp组件中使用方法吗?

来自分类Dev

动态ViewChildren组件的Angular 2使用方法

来自分类Dev

VueJs:从组件内部的根元素使用方法

来自分类Dev

动态ViewChildren组件的Angular 2使用方法

来自分类Dev

如何从父方法访问子属性/组件

来自分类Dev

如何从父组件调用子组件中的方法?

来自分类Dev

如何在React中从父组件调用子组件的方法

来自分类Dev

如何从父组件调用子组件中的方法?

来自分类Dev

在 React 中调用从父组件传递到子组件的方法

来自分类Dev

使用react挂钩从父组件更新子组件的状态

来自分类Dev

在从父组件接收的子组件中使用状态

来自分类Dev

决策使用方法

来自分类Dev

Vue-使用方法更新数据时组件不会重新渲染

来自分类Dev

Angular2从父级访问子组件中的方法

来自分类Dev

从父级调用功能组件的子级方法

来自分类Dev

React功能组件-如何从父级访问子级方法

来自分类Dev

ReactJS从父级的onClick方法更新对子组件的ajax调用

来自分类Dev

Angular2从父级访问子组件中的方法

来自分类Dev

从父 Angular 2 开始访问特定组件的方法

来自分类Dev

VueJS 2 从父方法更新组件中的 contenteditable

来自分类Dev

如何在公共组件中使用方法,以便一个需要它的组件和另一个不需要它的组件使用它?

来自分类Dev

从父组件渲染子组件或调用子组件的方法,反之亦然[React Native]

来自分类Dev

当组件从父组件动态更改时调用子组件中的方法

来自分类Dev

使用挂钩从父组件进行状态管理

来自分类Dev

对空类使用方法

来自分类Dev

GStreamer音频使用方法?

来自分类Dev

通用接口的使用方法

Related 相关文章

  1. 1

    如何使用foreach从父组件调用子组件方法

  2. 2

    react:从父组件调用子组件的方法

  3. 3

    我可以在.jsp组件中使用方法吗?

  4. 4

    动态ViewChildren组件的Angular 2使用方法

  5. 5

    VueJs:从组件内部的根元素使用方法

  6. 6

    动态ViewChildren组件的Angular 2使用方法

  7. 7

    如何从父方法访问子属性/组件

  8. 8

    如何从父组件调用子组件中的方法?

  9. 9

    如何在React中从父组件调用子组件的方法

  10. 10

    如何从父组件调用子组件中的方法?

  11. 11

    在 React 中调用从父组件传递到子组件的方法

  12. 12

    使用react挂钩从父组件更新子组件的状态

  13. 13

    在从父组件接收的子组件中使用状态

  14. 14

    决策使用方法

  15. 15

    Vue-使用方法更新数据时组件不会重新渲染

  16. 16

    Angular2从父级访问子组件中的方法

  17. 17

    从父级调用功能组件的子级方法

  18. 18

    React功能组件-如何从父级访问子级方法

  19. 19

    ReactJS从父级的onClick方法更新对子组件的ajax调用

  20. 20

    Angular2从父级访问子组件中的方法

  21. 21

    从父 Angular 2 开始访问特定组件的方法

  22. 22

    VueJS 2 从父方法更新组件中的 contenteditable

  23. 23

    如何在公共组件中使用方法,以便一个需要它的组件和另一个不需要它的组件使用它?

  24. 24

    从父组件渲染子组件或调用子组件的方法,反之亦然[React Native]

  25. 25

    当组件从父组件动态更改时调用子组件中的方法

  26. 26

    使用挂钩从父组件进行状态管理

  27. 27

    对空类使用方法

  28. 28

    GStreamer音频使用方法?

  29. 29

    通用接口的使用方法

热门标签

归档