如何使用redux获取反应中的数据?

时间:2017-07-21 07:57:06

标签: reactjs react-native react-router react-redux redux-thunk

你可以告诉我吗? 如何使用redux获取反应中的数据?

这是我的代码 https://codesandbox.io/s/lYMwLM591

import { UPDATED_STORIES } from './actions';
import axios from 'axios';

export default function getTopStories(){
  return (dispatch) => {
    axios.get('data.json').then( res => {
      console.log(res ,"respone");
      dispatch(getTopStoriesAysnc(res))
    })

  }
};

function getTopStoriesAysnc(response){
  return {
    type: UPDATED_STORIES,
    payload: response
  };
}

2 个答案:

答案 0 :(得分:1)

你的反应应用很好。你无法看到数据的原因是因为CORS问题。如果您检查控制台,您会注意到  '访问控制允许来源'标头丢失了。由于您无法访问服务器代码,因此无法对此进行任何操作。

但是,您实际上不必使用axios。由于数据位于同一个项目中,因此您只需导入它们即可。所以你的get_updated_stories将如下所示:

import { UPDATED_STORIES } from './actions';
import data from './data.json'

export default function getTopStories(){
  return (dispatch) => {
    console.log(data ,"respone");
    dispatch(getTopStoriesAysnc(data))
  }
};

function getTopStoriesAysnc(response){
  return {
    type: UPDATED_STORIES,
    payload: response
  };
}

在此处观看:https://codesandbox.io/s/pYW4pkRYX

答案 1 :(得分:0)

你的问题似乎来自这里:

function mapStateToProps(state) {
   return {
       index :state.counter
   }
}

state.counter不存在,但state.item确实存在。你需要写:

function mapStateToProps(state) {
   return {
       index :state.item
   }
}