web-dev-qa-db-fra.com

Comment obtenir des données d'un fichier json local en utilisant des actions et axios.get () (Redux)?

J'ai écrit Action, devrait obtenir les données du fichier db.json. Mais 

Erreur: message "xhr.js: 178 GET http: // localhost: 8083/data/db.json 404 .__ (introuvable)".

Pourquoi, si mon chemin est correct (db.json se trouve dans le même dossier)? Dans profileActions.js:

import axios from "axios";
var customData = require('./db.json');

export function fetchUsers(){
    return function(dispatch){
        axios.get('./db.json')
            .then((response) => {
                dispatch({type:'FETCH_USERS_FULFILLED', payload:response.data});
            })
            .catch((err) => {
                dispatch({type:'FETCH_USERS_REJECTED', payload:err});
            })
    }
}
5
Jurate

Je rencontre le même problème auparavant.Je crée mon application de réaction à l'aide de la commande create-react-app.Et je trouve que vous ne pouvez obtenir que le fichier statique du dossier public.Si vous voulez obtenir "db.json", vous devriez mettre le "db.json" dans le dossier public.

8
Thomas.lin

Je sais que cette question a reçu une réponse depuis longtemps. Cela aidera les gens comme moi. Au lieu d'utiliser axios ou d'autres bibliothèques réseau, vous pouvez importer directement le fichier json comme indiqué ci-dessous et le renvoyer dans Dispatcher. Si vous utilisez JSON local pour le tester, pourquoi avez-vous besoin de bibliothèques réseau? 

import data from './response.json'

export function initializeApp() {
  return function (dispatch) {
    dispatch({
      type: ActionTypes.ActionName,
      payload: data
    });

  }
}
1
PremPalanisamy