在React应用程序中未定义this.props.function()?

时间:2016-04-20 20:13:31

标签: javascript function reactjs redux

我正在构建一个react-redux应用程序,当我点击" save"按钮,应用程序应在actions / index.js中调用addToSaved函数。但是,我收到的错误是' this.props.addToSaved未定义'而不是一个功能。我在actions / index.js中定义了函数,但我想知道我是否遗漏了其他内容。这是我目前正在做的事情:

在components / MainView.js中:

'use strict';
import { addToSaved } from "../actions"

var React = require('react-native');
var {
    StyleSheet,
    Image,
    View,
    Text,
    Component,
    TouchableHighlight
} = React;


class MainView extends Component {
    onSearchPressed() {
        console.log('search pressed');
        this.props.addToSaved();
    }
    render() {
        return (
            <View style={styles.container}>
                <Image style={styles.image}
                    source={{uri: pic.img_url}} />
                <TouchableHighlight style = {styles.button}
                        onPress={this.onSearchPressed.bind(this)}
                        underlayColor='#99d9f4'>
                        <Text style = {styles.buttonText}>Save</Text>
                </TouchableHighlight>
            </View>
        );
    }
}

module.exports = MainView;

in actions / index.js:

var actions = exports = module.exports
exports.ADD_SAVED = 'ADD_SAVED'
exports.addToSaved = function addToSaved() {
    console.log('got to ADD_SAVED');

}

1 个答案:

答案 0 :(得分:3)

您是否正在导入addToSaved,并希望它出现在this.props上?

如果您希望this.props可以访问它,则需要将传递给组件实例

<MainView addToSaved={addToSaved} />