2017-05-28 72 views
0

父Browse.js如何將動作作爲React Native和Redux中的道具傳遞下去?

import { usersFetch, onToggleFollow } from '../actions'; 

class Browse extends Component { 
    render() { 
    return (
     <ListView 
     .... 
     renderRow={(user) => 
      <UserItem user={user} 
      onPress={() => this.props.onToggleFollow()} 
      />} 
     /> 
    ); 
    } 
} 

export default connect(mapStateToProps, { usersFetch, onToggleFollow })(Browse); 
在孩子UserItem.js

class UserItem extends Component { 

    render() { 
    followButton = <Button title='Follow' onPress={() => { 
     this.props.onToggleFollow(); 
    }}/>; 

    return (
     <View style={styles.cardContainerStyle}> 
     <View> 
      { followButton } 
     </View> 
     </View> 
    ); 
    } 
} 

在操作創建者文件

export const onToggleFollow =() => { 
    console.log('onToggleFollow method!'); 

    return (dispatch) => { 
    dispatch({ type: ON_TOGGLE_SUCCESS }); 
    }; 
}; 

我得到一個錯誤說:「this.props .onToggleFollow不是函數,this.props.onToggleFollow是未定義的「在UserItem.js中,任何幫助謝謝!

回答

1

你的問題是在這條線:

onPress={() => { this.props.onToggleFollow(); }} 
UserItem

。你傳遞的函數爲onPress prop,所以你應該調用this.props.onPress來代替。

相關問題