簡體   English   中英

React-Redux-this.props返回始終未定義

[英]React - Redux - this.props return always undefined

我有以下代碼

存儲/ index.js

const DEFAULT_STATE = {
    auth: { isAuthenticated: false },
    error: { message: null },
    tracks: [],
    uploadedTrack: {}
};

存儲/減速/ index.js

import auth from './auth';
import error from './error';
import {tracks, uploadedTrack} from './tracks';

export default combineReducers({
    auth,
    tracks,
    uploadedTrack,
    error
});

存儲/減速/ tracks.js

import {UPLOADED_TRACK, SET_CURRENT_USER_TRACK} from '../actionTypes';

export const tracks = (state = [], action) => {
    switch(action.type) {
        case SET_CURRENT_USER_TRACK:
            return action.tracks;
        default:
            return state;
    }
}

export const uploadedTrack = (state = {}, action) => {
    switch(action.type) {
        case UPLOADED_TRACK:
            return action.track;
        default:
            return state;
    }
};

存儲/動作/ tracks.js

export const setTrack = tracks => ({
    type: SET_CURRENT_USER_TRACK,
    tracks
});

export const setUploadedTrack = track => ({
    type: UPLOADED_TRACK,
    track
});

export const getUserTrack = () => {
    return async dispatch => {
        try {
            const {token, ...tracks} = await api.call('get', 'tracks/user');

            dispatch(setTrack(tracks));
            dispatch(removeError());
        } catch (err) {
            const {error} = err.response.data;
            dispatch(addError(error.message));
        }
    };
};

組件/ trackList.jsx

componentDidMount() {
        const {getUserTrack} = this.props;
        getUserTrack();
    }

render() {
        var {authType} = this.props;
        const {auth} = this.props;
        const {tracks} = this.props;

        console.log("Track: ", tracks)

一切似乎都可行,因為我在Redux商店上的“曲目”包含我的六個曲目列表,但是當我嘗試從控制台上的“ tracks”變量打印此信息時,此打印為“ undefined”。 奇怪的是,我在控制台上的“通話”包含我的六個音軌...您能幫我嗎? 我不知道我的錯誤在哪里,我嘗試應用網上找到的解決方案,但沒有任何效果。

您可以顯示如何將redux狀態映射到組件嗎? 如果您的redux商店商店包含六個軌道,但是您無法在react組件中顯示它們,那么問題可能出在您如何將商店綁定到組件上(當您在components/trackList.jsx調用connect()時)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM