componentDidMount()错误,未定义不是函数

时间:2018-07-12 09:42:12

标签: react-native redux react-redux axios

我在React Native中使用Redux。我正在尝试使用axios访问https://jsonplaceholder.typicode.com
这是代码:

import React, {Component} from 'react'
import {View,Text,StyleSheet} from 'react-native';
import { connect } from 'react-redux';
import {getArticles} from '../Articles';
import {bindActionCreators} from 'redux';

class Articles extends Component{

    componentDidMount(){
        this.props.getArticles()
    }

    render(){
        return(
            <View>
                <Text>Articles</Text>
            </View>
        )
    }
}

function mapStateToProps(state){
    return {
        articles:state.articles
    }
}

function mapDispatchToProps(dispatch){
    return bindActionCreators({getArticles},dispatch);
}

export default connect(mapStateToProps,mapDispatchToProps)(Articles)

这是我要使用axios访问该链接的操作:

import axios from 'axios';
const URL = "https://jsonplaceholder.typicode.com"

export function getArticles(){
    const request = axios.get(`${URL}/post`).then(response => response.data)

    return{
        type:"GET_ARTICLES",
        payload: request,
    }
}

这是错误的屏幕截图:
Error image

我对此很陌生,所以也许我犯了一些愚蠢的错误。
谢谢!

2 个答案:

答案 0 :(得分:0)

您为什么要尝试通过getArticles作为道具?只需使用:

componentDidMount(){
    getArticles()
}

答案 1 :(得分:0)

尝试一下。

componentDidMount(){
    this.props.dispatch(getArticles())
}

或将存储导入到Component和

componentDidMount(){
    store.dispatch(getArticles())
}