2017-12-07 19 views
1

React Native with Redux-thunk 미들웨어를 사용하고 있습니다. 내 문제는 디스패치 함수가 개체를 반환하지 않으며 콘솔조차하지 않는다는 것입니다. 여기React-Redux-Thunk : 액션이 디스패치를 ​​반환하지 않습니다.

내 행동은 파일입니다

function movieSelc(movie) { 
    return { 
      type: types.MOVIE_SELECT, 
      selectedMovie: movie 
     }; 
} 

export function selectMovie(m) { 
    console.log("this console works!") 
    return (dispatch) => { 
    console.log("this console never works") 
    dispatch(movieSelc(m)); 
    }; 
} 

이 구성 요소이다 (나는 여기가 조금 짧게하는 CONST 스타일을 포함하고 있지 않다) :

import React, { Component } from 'react'; 
import { Text, View, TouchableOpacity, Image, } from 'react-native'; 
import { connect } from 'react-redux'; 
import PropTypes from 'prop-types'; 
import { bindActionCreators } from 'redux'; 
import * as actions from './../actions'; 

class ListItem extends Component { 
    render() { 
     const { movie } = this.props; 
     return (

      <View> 
        { 
         movie && movie.map((item, index) => 
         <View key={index} style={styles.containerStyle}> 
          <Image 
           source={{ uri: `https://image.tmdb.org/t/p/w342${item.backdrop_path}` }} 
           style={styles.imgStyle} 
          /> 

          <TouchableOpacity 
           style={{ backgroundColor: 'gray' }} 
           onPress={() => { actions.selectMovie(item); }} 
          > 
            <Text style={styles.headStyle}>{item.title}</Text> 
            <Text>{item.overview}</Text> 
            <Text style={styles.rateStyle}> 
            Release Day:{item.release_date} 
            </Text> 
            <Text style={styles.rateStyle}>Rating: {item.vote_average}</Text> 
          </TouchableOpacity> 
         </View>) 
        } 
      </View> 

     ); 
    } 
} 
ListItem.propTypes = { 
    actions: PropTypes.object.isRequired, 
    movies: PropTypes.object.isRequired, 
}; 


function mapStateToProps(state) { 
    const { movies } = state; 
    return { 
     movies, 
    }; 
} 

function mapDispatchToProps(dispatch) { 
    return { 
     actions: bindActionCreators(actions, dispatch) 
    }; 
} 

export default connect(
    mapStateToProps, 
    mapDispatchToProps 
)(ListItem); 

은 알려 주시기 바랍니다 경우 I 더 많은 정보를 제공해야합니다. 고맙습니다!

답변

1

당신은 디스패치 대신에 selectMovie 액션을 호출하고 있습니다. bindActionToProps 메소드를 사용하면 react-redux가 소품을 통해 작업을 전달할 수있는 방법을 제공하므로 올바른 코드는 다음과 같아야합니다.