기능 구성 요소에 대한 React-Redux + Redux-Thunk. API에서 데이터를 가져온 후 UI 업데이트

소유

redux를 사용하여 API에서 데이터를 가져 오는 기능 구성 요소가 있습니다.

const useFetching = (someFetchActionCreator) => {
    const dispatch = useDispatch();
    useEffect(() => {
        dispatch(someFetchActionCreator());
    }, [])
}

구성 요소 :

export function Trips(props) {
    const trips = useSelector(state => state.trips);
    useFetching(fetchTrips)
...
...
}

썽크 :

export const fetchTrips = () => (dispatch) =>
    axios.get("/api/v1/trips")
        .then(response => dispatch(addTrips(response.data)))

export const addTrips = trips => ({
    type: ADD_TRIPS,
    payload: trips
})

감속기 :

function tripsReducer(state = INITIAL_STATE, action) {
    console.log(action)
    if (action.type === ADD_TRIPS) {
        return Object.assign({}, state, {
            trips: state.trips.concat(action.payload)
        });
    }
    return state
}

내 감속기가 호출됩니다. 가져온 데이터가 발송 된 후 UI를 업데이트하려면 어떻게해야합니까? 내 렌더링이 다시 호출되지 않습니다.

Anouar

첫 번째 옵션 : 후크 사용

실제로 사용 React하고 react-redux있습니다. trips나중에 구성 요소에서 개체를 사용해야합니다 . 다음은 코드를 사용하는 샘플입니다.

import React, { useEffect } from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { fetchTrips } from '../tripsActions';

const useFetching = (someFetchActionCreator) => {
    const dispatch = useDispatch();
    useEffect(() => {
        dispatch(someFetchActionCreator());
    }, []);
}

export function Trips(props) {
    const trips = useSelector(state => state.trips);
    useFetching(fetchTrips);

    return (
        <div>
            <p>Total trips: {trips.length}</p>
        </div>
    );
}

두 번째 옵션 : 연결 사용

이것이 후크를 도입하기 전에 Redux 스토어 상태에 연결하는 방법이었습니다.

당신이 사용하는 것처럼 반응-돌아 오는 이 쉽게 사용하여 수행 할 수있는 connect()기능. 또한 mapStateToProps()구성 요소가 필요로하는 저장소에서 데이터의 일부를 선택하는 mapDispatchToProps()함수 디스패치 할 작업에 액세스 할 수 있는 함수를 제공해야합니다.

Trips접근 방식을 사용하면 구성 요소가 다음과 같이 보입니다.

import React from 'react';
import { connect } from 'react-redux';
import { fetchTrips } from '../tripsActions';

const mapStateToProps = (state) => {
    return {
        // will be available as props.trips
        trips: state.trips
    }
}

const mapDispatchToProps = (dispatch) => {
    return {
        // will be available as props.fetch()
        fetch: () => dispatch(fetchTrips)
    }
}

const function Trips(props) {
    this.props.fetch();
    // some other code. Example:
    return (
        <div>
            <p>Total trips: {this.props.trips.length}</p>
        </div>
    );
}

export default connect(mapStateToProps)(Trips);

mapStateToProps()Redux 저장소 상태를 수신하고 구성 요소에서 해당 필드를 소품으로 사용할 수있는 객체를 반환합니다. 이미 사용 props.trips하고 있으므로 해당 필드를 Redux 상태 trips필드 의 업데이트 된 값에 매핑했습니다 .

connect()구성 요소에 대한 호출 연결된 구성 요소를 제공합니다 . 그리고 후자는 원래 구성 요소가 아닌 내 보내야합니다. 다른 구성 요소를 만들지 않으므로 구성 요소를 계속 Trips정상적으로 사용합니다 .

이제 소품이 업데이트 될 때 구성 요소가 다시 렌더링됩니다.

connect()mapStateToProps()mapDispatchToProps()함수 의 사용을 더 잘 이해하기 위해 react-redux 문서를 살펴볼 수 있습니다 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

재사용 가능한 React 구성 요소에 대한 Redux 작업 보내기

분류에서Dev

redux 구조를 사용하여 작업을 실행 한 후 구성 요소가 react-native에서 업데이트되지 않음

분류에서Dev

POST API에서 데이터를 가져온 후 기능 구성 요소를 렌더링합니까?

분류에서Dev

redux의 다른 구성 요소에 대한 상태를 업데이트하는 감속기를 만듭니다.

분류에서Dev

반응 js 기능 구성 요소에서 작업이 발송 된 직후 redux 저장소에서 업데이트 된 값을 사용하는 방법

분류에서Dev

Redux Store에서 데이터를 가져 와서 React Native의 구성 요소에서 사용하는 방법

분류에서Dev

하위 구성 요소의 props.function이 redux-thunk onClick에 전달 된 후 Event.target을 업데이트하는 방법

분류에서Dev

React : 구성 요소의 Redux에서 데이터에 액세스

분류에서Dev

React Native-Redux 상태가 업데이트 중이지만 구성 요소보기가 제대로 업데이트되지 않습니다.

분류에서Dev

redux 저장소가 채워진 후 업데이트되지 않는 React 구성 요소

분류에서Dev

React-Redux : 테이블 내부의 버튼을 사용하여 구성 요소에서 가져온 API 데이터를 동적 경로 구성 요소로 보냅니다.

분류에서Dev

React Redux, 첫 페이지로드시에만 API에서 데이터를로드합니다. 데이터가로드되면 구성 요소 렌더링

분류에서Dev

Redux를 사용하여 React Native에서 구성 요소의 소품이 업데이트되지 않습니다.

분류에서Dev

데이터를 배열로 푸시 한 후 Sate를 업데이트 할 때 React 기능 구성 요소가 렌더링되지 않습니다.

분류에서Dev

React redux가 구성 요소를 업데이트하지 않습니다.

분류에서Dev

REST 서비스에 데이터를 게시 한 후 구성 요소가 업데이트되지 않는 이유

분류에서Dev

Redux 데코레이터는 반응 구성 요소 상태에서 데이터를 가져옵니다.

분류에서Dev

Redux 업데이트에서 구성 요소가 업데이트되지 않도록하는 방법

분류에서Dev

ReactJS : API에서 데이터를 가져온 직후 부모에서 자식 구성 요소로 데이터를 전달할 때 문제가 발생합니다. (기능 구성 요소 만 해당)

분류에서Dev

Redux 작업으로 가져온 후 소품에 대한 논리 수행

분류에서Dev

redux / react-router v4에서 구성 요소를 업데이트해야합니까?

분류에서Dev

Redux 상태의 데이터를 사용하여 기능 구성 요소 로컬 상태 업데이트

분류에서Dev

가져 오기 작업에서 저장소의 데이터를 사용하는 방법 (react-redux)

분류에서Dev

구성 요소에서 변수를 업데이트 한 후 Angular가 업데이트되지 않음

분류에서Dev

구성 요소는 부모 또는 Redux 저장소에서 직접 데이터를 가져옵니다.

분류에서Dev

React Native Redux 저장소는 감속기를 올바르게 전달하지만 UI 구성 요소를 업데이트하지 않습니다.

분류에서Dev

Firebase에서 구성 요소를 제거한 후 구성 요소 업데이트

분류에서Dev

SQLITE : 각 개별 구성 요소에 대한 마지막 구성 요소 업데이트 가져 오기

분류에서Dev

React로 Redux 상태를 업데이트 한 후 내지도 기능이 작동하지 않는 이유

Related 관련 기사

  1. 1

    재사용 가능한 React 구성 요소에 대한 Redux 작업 보내기

  2. 2

    redux 구조를 사용하여 작업을 실행 한 후 구성 요소가 react-native에서 업데이트되지 않음

  3. 3

    POST API에서 데이터를 가져온 후 기능 구성 요소를 렌더링합니까?

  4. 4

    redux의 다른 구성 요소에 대한 상태를 업데이트하는 감속기를 만듭니다.

  5. 5

    반응 js 기능 구성 요소에서 작업이 발송 된 직후 redux 저장소에서 업데이트 된 값을 사용하는 방법

  6. 6

    Redux Store에서 데이터를 가져 와서 React Native의 구성 요소에서 사용하는 방법

  7. 7

    하위 구성 요소의 props.function이 redux-thunk onClick에 전달 된 후 Event.target을 업데이트하는 방법

  8. 8

    React : 구성 요소의 Redux에서 데이터에 액세스

  9. 9

    React Native-Redux 상태가 업데이트 중이지만 구성 요소보기가 제대로 업데이트되지 않습니다.

  10. 10

    redux 저장소가 채워진 후 업데이트되지 않는 React 구성 요소

  11. 11

    React-Redux : 테이블 내부의 버튼을 사용하여 구성 요소에서 가져온 API 데이터를 동적 경로 구성 요소로 보냅니다.

  12. 12

    React Redux, 첫 페이지로드시에만 API에서 데이터를로드합니다. 데이터가로드되면 구성 요소 렌더링

  13. 13

    Redux를 사용하여 React Native에서 구성 요소의 소품이 업데이트되지 않습니다.

  14. 14

    데이터를 배열로 푸시 한 후 Sate를 업데이트 할 때 React 기능 구성 요소가 렌더링되지 않습니다.

  15. 15

    React redux가 구성 요소를 업데이트하지 않습니다.

  16. 16

    REST 서비스에 데이터를 게시 한 후 구성 요소가 업데이트되지 않는 이유

  17. 17

    Redux 데코레이터는 반응 구성 요소 상태에서 데이터를 가져옵니다.

  18. 18

    Redux 업데이트에서 구성 요소가 업데이트되지 않도록하는 방법

  19. 19

    ReactJS : API에서 데이터를 가져온 직후 부모에서 자식 구성 요소로 데이터를 전달할 때 문제가 발생합니다. (기능 구성 요소 만 해당)

  20. 20

    Redux 작업으로 가져온 후 소품에 대한 논리 수행

  21. 21

    redux / react-router v4에서 구성 요소를 업데이트해야합니까?

  22. 22

    Redux 상태의 데이터를 사용하여 기능 구성 요소 로컬 상태 업데이트

  23. 23

    가져 오기 작업에서 저장소의 데이터를 사용하는 방법 (react-redux)

  24. 24

    구성 요소에서 변수를 업데이트 한 후 Angular가 업데이트되지 않음

  25. 25

    구성 요소는 부모 또는 Redux 저장소에서 직접 데이터를 가져옵니다.

  26. 26

    React Native Redux 저장소는 감속기를 올바르게 전달하지만 UI 구성 요소를 업데이트하지 않습니다.

  27. 27

    Firebase에서 구성 요소를 제거한 후 구성 요소 업데이트

  28. 28

    SQLITE : 각 개별 구성 요소에 대한 마지막 구성 요소 업데이트 가져 오기

  29. 29

    React로 Redux 상태를 업데이트 한 후 내지도 기능이 작동하지 않는 이유

뜨겁다태그

보관