데이터가 변경된 후 구성 요소를 한 번만 다시 렌더링하는 방법은 무엇입니까?

좀 더

저는 React JS를 처음 사용합니다. React에서 CRUD 작업을하고 있습니다. 모든 것이 괜찮지 만 목록에서 항목을 삭제하면 목록을 업데이트하려면 브라우저를 새로 고쳐야합니다. 어떻게 해결할 수 있습니까?

import React, { useState, useEffect } from 'react'
import axios from 'axios';
import { Segment, Item, Container, Card, Icon, Button } from 'semantic-ui-react';
import { IEmployee } from '../../src/Model/activity'
import { Link, RouteComponentProps } from 'react-router-dom';


interface DetailParams {
    id: string;
}


const EmployeeList : React.FC<RouteComponentProps<DetailParams>> = ({ match, history }) => {

    const [employees, setEmployees] = useState<IEmployee[]>([])

    useEffect(() => {
        axios.get('https://localhost:44353/Employee/GetEmployeeList')
            .then((response) => {
                setEmployees(response.data)
            })
    }, [])


    const deleteEmployee =(id: string) => {
        axios.get(`https://localhost:44353/Employee/DeleteEmployee/${id}`)
            .then((response) => {
            history.push('/employeeList')
        })
    }

    return (
        <Container style={{ marginTop: '7em' }}>
            <Segment>
                {
                    employees.map(employee => (
                            <Card key={employee.id}>
                                {/* <Image src='/images/avatar/large/daniel.jpg' wrapped ui={false} /> */}
                                <Card.Content>
                                    <Card.Header>{employee.firstName}</Card.Header>
                                    <Card.Meta>{employee.address}</Card.Meta>
                                        <Card.Description>
                                     {employee.organization}
                                </Card.Description>
                                </Card.Content>

                             <Card.Content>
                             
                             
                             <Button
                               
                                onClick={() => deleteEmployee(employee.id)}
                                floated="right"
                                content="Delete"
                                color="red" />

                             <Button
                                as={Link} to={`/edit/${employee.id}`}
                                floated="right"
                                content="View"
                                color="blue" />

                             </Card.Content>

                            </Card>
                    ))
                }
            </Segment>
        </Container>
    )
}

export default EmployeeList

위의 코드는 ** / employeeList **로 라우팅되는 EmployeeList 구성 요소입니다. 다음은 코드의 UI입니다.여기에 이미지 설명 입력

목록에서 항목을 삭제할 때 목록을 업데이트하려면 브라우저를 다시로드해야합니다. 나는 useEffect에서 직원 의존을 사용해 보았습니다.

useEffect(() => {
        axios.get('https://localhost:44353/Employee/GetEmployeeList')
            .then((response) => {
                setEmployees(response.data)
            })
    }, [employees])

이것은 잘 작동했지만 API 메서드는 무한히 실행됩니다. 이 문제를 어떻게 해결합니까?

pageNotfoUnd

두 가지를 할 수 있습니다

  1. 삭제 API가 업데이트 된 데이터를 반환하는 setEmployess경우 업데이트 된 값을 호출 하고 설정할 수 있습니다 .

  2. 또는 상태에서 삭제 된 값을 필터링 할 수 있습니다. employees

    const deleteEmployee =(id: string) => {
     //add this in axios call success
         let updatedEmployee = [...employees];
         updatedEmployee.filter(eachEmployee=>eachEmployee.id !== id);
         setEmployees(updatedEmployee);
    
    
     }
    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

계층을 변경 한 후 상태를 유지하고 반응 구성 요소의 다시 렌더링을 방지하는 방법은 무엇입니까?

분류에서Dev

다른 구성 요소를 통해 속성을 업데이트 한 후 구성 요소가 Angular 2에서 렌더링되도록 트리거하는 방법은 무엇입니까? ngZone.run ()이 작동하지 않습니다.

분류에서Dev

React 구성 요소는 두 번 렌더링되고 상태 후크를 사용하지 않는 함수 구성 요소는 한 번만 렌더링됩니다.

분류에서Dev

부모의 상태가 변경 될 때 React에서 자식 구성 요소를 업데이트 (다시 렌더링)하는 방법은 무엇입니까?

분류에서Dev

ReactJS-양식에서 다른 선택을 클릭 한 후 구성 요소를 다시 렌더링하는 방법은 무엇입니까?

분류에서Dev

한 번의 버튼 클릭으로 다른 반응 구성 요소를 렌더링하는 방법은 무엇입니까? (기능적 구성 요소)

분류에서Dev

API svelte를 통해 저장소 데이터가 업데이트되면 구성 요소를 다시 렌더링하는 방법은 무엇입니까?

분류에서Dev

React에서 API 데이터를 한 번만 요청하고 방문 할 때마다 페이지를 렌더링하지 않는 방법은 무엇입니까?

분류에서Dev

useState ()가 변경 될 때 React 기능 구성 요소를 렌더링하는 방법은 무엇입니까?

분류에서Dev

소품 데이터가 반응 후크로 변경 될 때 다시 렌더링하고 싶지만 무한 다시 렌더링이 있습니다.

분류에서Dev

모든 구성 요소가 렌더링 된 후 Angular2에서 TypeScript 코드를 실행하는 방법은 무엇입니까?

분류에서Dev

데이터가 변경 될 때 vue v-for가 하위 구성 요소를 다시 렌더링하지 않는 이유는 무엇입니까?

분류에서Dev

저장소에서 데이터를 업데이트 한 후 구성 요소를 다시 렌더링하는 방법

분류에서Dev

페이지 렌더링시 업데이트 된 상태를 하위 구성 요소에 전달하는 방법은 무엇입니까?

분류에서Dev

데이터 값을 변경 한 후 핸들러를 다시 시작하는 방법은 무엇입니까?

분류에서Dev

가져온 API 데이터를 렌더링하는 React 구성 요소를 테스트 할 때 어설 션을 만들기 전에 해당 데이터를 기다리는 것이 가장 좋은 방법은 무엇입니까?

분류에서Dev

라우터는 URL을 변경하지만 렌더링 된 구성 요소는 변경하지 않습니다.

분류에서Dev

React Router는 링크를 변경하지만 적절한 구성 요소를 렌더링하지 않습니다.

분류에서Dev

R Shiny 반응 시스템을로드 한 후 'navbarPage'및 'tabPanel'구성 요소의 요소를 변경하는 방법은 무엇입니까?

분류에서Dev

한 구성 요소의 상태 변경시 두 번째 구성 요소를 다시 렌더링합니다.

분류에서Dev

React (후크를 사용하는 기능적 구성 요소)를 강제로 소품 변경시 처음부터 새 구성 요소를 만드는 방법은 무엇입니까?

분류에서Dev

원본 데이터를 다시 포맷 한 다음 Rails 4에서 중첩 된 JSON 요청을 렌더링하는 방법은 무엇입니까?

분류에서Dev

React-다시 렌더링 한 후 Google지도 구성 요소가지도를 변경하지 않음

분류에서Dev

다른 부작용이 반응 구성 요소를 렌더링 한 후 부작용을 수행하는 방법

분류에서Dev

데이터가 변경된 경우에만 캐시를 업데이트하는 방법은 무엇입니까?

분류에서Dev

각기 다른 데이터를 가질 수 있지만 동일한 테이블 구성 요소 만 사용하도록 Angular 2 테이블 구성 요소에서 데이터를 공유하는 방법은 무엇입니까?

분류에서Dev

Reactjs : 데이터 변경시 하위 구성 요소가 다시 렌더링되지 않는 이유는 무엇입니까?

분류에서Dev

Vue.js 선택 옵션을 변경 한 후 표시된 데이터를 다시 계산하는 방법은 무엇입니까?

분류에서Dev

애니메이션을 렌더링 한 다음 재생이 완료된 후 렌더링하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    계층을 변경 한 후 상태를 유지하고 반응 구성 요소의 다시 렌더링을 방지하는 방법은 무엇입니까?

  2. 2

    다른 구성 요소를 통해 속성을 업데이트 한 후 구성 요소가 Angular 2에서 렌더링되도록 트리거하는 방법은 무엇입니까? ngZone.run ()이 작동하지 않습니다.

  3. 3

    React 구성 요소는 두 번 렌더링되고 상태 후크를 사용하지 않는 함수 구성 요소는 한 번만 렌더링됩니다.

  4. 4

    부모의 상태가 변경 될 때 React에서 자식 구성 요소를 업데이트 (다시 렌더링)하는 방법은 무엇입니까?

  5. 5

    ReactJS-양식에서 다른 선택을 클릭 한 후 구성 요소를 다시 렌더링하는 방법은 무엇입니까?

  6. 6

    한 번의 버튼 클릭으로 다른 반응 구성 요소를 렌더링하는 방법은 무엇입니까? (기능적 구성 요소)

  7. 7

    API svelte를 통해 저장소 데이터가 업데이트되면 구성 요소를 다시 렌더링하는 방법은 무엇입니까?

  8. 8

    React에서 API 데이터를 한 번만 요청하고 방문 할 때마다 페이지를 렌더링하지 않는 방법은 무엇입니까?

  9. 9

    useState ()가 변경 될 때 React 기능 구성 요소를 렌더링하는 방법은 무엇입니까?

  10. 10

    소품 데이터가 반응 후크로 변경 될 때 다시 렌더링하고 싶지만 무한 다시 렌더링이 있습니다.

  11. 11

    모든 구성 요소가 렌더링 된 후 Angular2에서 TypeScript 코드를 실행하는 방법은 무엇입니까?

  12. 12

    데이터가 변경 될 때 vue v-for가 하위 구성 요소를 다시 렌더링하지 않는 이유는 무엇입니까?

  13. 13

    저장소에서 데이터를 업데이트 한 후 구성 요소를 다시 렌더링하는 방법

  14. 14

    페이지 렌더링시 업데이트 된 상태를 하위 구성 요소에 전달하는 방법은 무엇입니까?

  15. 15

    데이터 값을 변경 한 후 핸들러를 다시 시작하는 방법은 무엇입니까?

  16. 16

    가져온 API 데이터를 렌더링하는 React 구성 요소를 테스트 할 때 어설 션을 만들기 전에 해당 데이터를 기다리는 것이 가장 좋은 방법은 무엇입니까?

  17. 17

    라우터는 URL을 변경하지만 렌더링 된 구성 요소는 변경하지 않습니다.

  18. 18

    React Router는 링크를 변경하지만 적절한 구성 요소를 렌더링하지 않습니다.

  19. 19

    R Shiny 반응 시스템을로드 한 후 'navbarPage'및 'tabPanel'구성 요소의 요소를 변경하는 방법은 무엇입니까?

  20. 20

    한 구성 요소의 상태 변경시 두 번째 구성 요소를 다시 렌더링합니다.

  21. 21

    React (후크를 사용하는 기능적 구성 요소)를 강제로 소품 변경시 처음부터 새 구성 요소를 만드는 방법은 무엇입니까?

  22. 22

    원본 데이터를 다시 포맷 한 다음 Rails 4에서 중첩 된 JSON 요청을 렌더링하는 방법은 무엇입니까?

  23. 23

    React-다시 렌더링 한 후 Google지도 구성 요소가지도를 변경하지 않음

  24. 24

    다른 부작용이 반응 구성 요소를 렌더링 한 후 부작용을 수행하는 방법

  25. 25

    데이터가 변경된 경우에만 캐시를 업데이트하는 방법은 무엇입니까?

  26. 26

    각기 다른 데이터를 가질 수 있지만 동일한 테이블 구성 요소 만 사용하도록 Angular 2 테이블 구성 요소에서 데이터를 공유하는 방법은 무엇입니까?

  27. 27

    Reactjs : 데이터 변경시 하위 구성 요소가 다시 렌더링되지 않는 이유는 무엇입니까?

  28. 28

    Vue.js 선택 옵션을 변경 한 후 표시된 데이터를 다시 계산하는 방법은 무엇입니까?

  29. 29

    애니메이션을 렌더링 한 다음 재생이 완료된 후 렌더링하는 방법은 무엇입니까?

뜨겁다태그

보관