获取data.json redux

时间:2018-12-05 15:09:13

标签: reactjs redux

我想从data.json文件中获取我的数据。该文件位于本地。这是我的文件结构 测试

-data
--data.json
-testActions.js
-testActionTypes.js
-testReducer.js

我在testActions.js中拥有

    import axios from 'axios';
    import * as actionTypes from './testActionTypes';
    import jsonData from './data/data';

  const fetchQuestionsStart = () => ({
      type: actionTypes.FETCH_QUESTIONS_START,
    });

    const fetchQuestionsSucces = (data) => ({
      type: actionTypes.FETCH_QUESTIONS_SUCCESS,
      data,
    });

    const fetchQuestionsError = (error) => ({
      type: actionTypes.FETCH_QUESTIONS_FAIL,
      error,
    });

    const fetchQuestions = () => (dispatch) => {
      dispatch(fetchQuestionsStart());
      return axios.get(jsonData)
        .then((res) => dispatch(fetchQuestionsSucces(res.data)))
        .catch((err) => dispatch(fetchQuestionsError(err.response.data)));
    };

在控制台中,我有这个:http://localhost:3000/[object%20Object] 500 (Internal Server Error)

如何通过Redux获取数据?

1 个答案:

答案 0 :(得分:0)

由于您正在使用axios进行GET调用,因此必须提供json文件的URL 例如。

const fetchQuestions = () => (dispatch) => {
      dispatch(fetchQuestionsStart());
      return axios.get('data/data.json')
        .then((res) => dispatch(fetchQuestionsSucces(res.data)))
        .catch((err) => dispatch(fetchQuestionsError(err.response.data)));
    };

如果您是在本地运行的,并且端口为3000,则该网址将在内部解析为http://localost:3000/data/data.json

axios("http://localost:3000/data/data.json")