React-Native Redux this.props未定义

时间:2019-06-11 12:33:47

标签: javascript react-native redux

我正在尝试使用Redux从Firebase DB显示数据,但是由于某些原因,this.props是未定义的 我使用redux可以毫无问题地在数据库的其他页面中显示其他数据。但是在这里我卡住了,找不到错误

这是我的代码。希望有人能给我建议这里有什么问题

在我的invoice.js文件中:

    const mapStateToProps = (state) => {
return {
    startFireData: state.startFireData,

};
    }

    const mapDispatchToProps = (dispatch) => {
return {
    watchInvoiceStartFire: () => { dispatch(watchInvoiceStartFire()) },
};
    }

    constructor(props) {
    super(props);
    this.props.watchInvoiceStartFire();
     }

和渲染中:

    return (
        <View style={styles.container}>
            <LinearGradient
                colors={['#3399ff', '#66b3ff', '#cccccc']}
                style={styles.pageStyle}>
                <Text style={styles.buttonText}  >{this.props.startFireData.נפיץ}</Text>
                <Text style={styles.buttonText}  >{this.props.startFireData.עשן_חדש}</Text>
                <Text style={styles.buttonText}  >{this.props.startFireData.עשן_ישן}</Text>
                <Text style={styles.buttonText}  >דוחות</Text>
                <Text style={styles.buttonText}  >דוחות</Text>
            </LinearGradient>
        </View>

在我的redux文件中:

    const watchInvoiceStartFire = () =>{
return function(dispatch) {
    firebase.database().ref("Invoices/startfire/ammo").on("value", function(snapshot) {
        var startFireData = snapshot.val();
        dispatch(setStartFireData(startFireData));
    }, function(error) { });
};
    }

    const setStartFireData = (startFireData) =>{
return {
    type: "setStartFireData",
    value: startFireData
}
    }

    const reducer = (state = initialState, action) => {
switch(action.type) {
    case "setStorageData":
        return { ...state, storageData: action.value };

    case "setOperationData":
        return {...state, operationData: action.value};

    case "setStartFireData":
        return {...state, startFireData: action.value};

    default:
        return state;
}
    };

我的错误,我忘记添加到初始状态

    const initialState = {
personData: { },
storageData:{ },
operationData:{ },
startFireData:{ },

};

很抱歉在这里打扰你

0 个答案:

没有答案