首页 > 解决方案 > mapStateToProps 未定义

问题描述

1.有人可以帮我在哪里做错了吗?2.我将状态映射到其属性的组件,但我仍然收到此错误“mapStateToProps 未定义”这是下面的整个组件。错误显示“未定义 mapStateToProps”

    import React, {Component} from 'react';
    import Icon from 'react-native-vector-icons/EvilIcons';
    import  { loadInitialPosts} from './actions';
    import {connect } from 'react-redux';  
    import _ from 'lodash';
    import {View, StyleSheet,FlatList} from  'react-native';
    import PostItem from './PostItem';
    import PostDetail from './PostDetail';

    class PostsList extends Component {

    componentWillMount() {
        this.props.loadInitialPosts();
    }
    renderItem({item}){
        return <PostItem posts = { item } />;
    }
    renderInitialView(){
        if(this.props.postDetailView === true){
            return(
               <PostDetail />
          );
        } 
    else{
        return(
            <FlatList 
            data={this.props.posts} 
            renderItem={this.renderItem} />
           )}
         }
    render(){
        return(
            <View style={styles.list}>
                {this.renderInitialView()}
            </View>
              );
            }
            }
    const mapStateToProps = state => {
        const posts = _.map(state.posts, (val, id) => 
          {
            return { ...val, id};
          });
        return{ 
            posts: posts,
            postDetailView: state.postDetailView,
              };
                              }
    export default connect(mapStateToProps, { loadInitialPosts })(PostsList)

1.这是调度数据的动作

     export const loadInitialPosts = () => { 
         return function(dispatch){
             return axios.get(apiHost 
                +"/api/get_posts? 
                count=20")
             .then((response) => {
                 dispatch({ type: 
                 'INITIAL_POSTS_FETCH', payload: 
                  response.data.posts});
              }).catch((err) => {
                    console.log(err);
            });
        };
    };

标签: javascriptreact-native

解决方案


mapStateToProps之前坐在课外export default connect(mapStateToProps)(SomeClass)

class SomeClass extends React.Component {
  ...
}

const mapStateToProps = state => {
  const posts = _.map(state.posts, (val, id) => {
    return { ...val,
      id
    };
  });
  return {
    posts: posts,
    postDetailView: state.postDetailView,
  };
}


推荐阅读