Javascript TypeError:undefined不是对象(计算';_order.default.addOrder';)
我正在尝试从Javascript TypeError:undefined不是对象(计算';_order.default.addOrder';),javascript,reactjs,react-native,react-redux,expo,Javascript,Reactjs,React Native,React Redux,Expo,我正在尝试从CartScreen调用addOrder函数,以调用位于我的操作文件夹中的函数 问题是,每当我按下OrderNow按钮时,addOrder功能就会被触发。但是,我得到了这样的错误 CartScreen.js import React from 'react'; import { View, Text, FlatList, Button, StyleSheet } from 'react-native'; import { useSelector, useDispatch } fro
CartScreen
调用addOrder
函数,以调用位于我的操作文件夹中的函数
问题是,每当我按下OrderNow按钮时,addOrder功能就会被触发。但是,我得到了这样的错误
CartScreen.js
import React from 'react';
import { View, Text, FlatList, Button, StyleSheet } from 'react-native';
import { useSelector, useDispatch } from 'react-redux';
import * as cartAction from '../../store/actions/cart';
import ordersAction from '../../store/actions/order';
import Colors from '../../constants/Colors';
import CartItem from '../../components/shop/CartItem';
const CartScreen = props => {
const dispatch = useDispatch();
const cartTotalAmount = useSelector(state => state.cart.totalAmount);
const cartItems = useSelector(state => {
const transformedCartItems = [];
for (const key in state.cart.items) {
transformedCartItems.push({
productId: key,
productTitle: state.cart.items[key].productTitle,
productPrice: state.cart.items[key].productPrice,
quantity: state.cart.items[key].quantity,
sum: state.cart.items[key].sum,
});
}
return transformedCartItems.sort((a, b) =>
a.productId > b.productId ? 1 : -1,
);
});
console.log('CATRITEM', cartItems);
return (
<View style={styles.screen}>
<View style={styles.summary}>
<Text style={styles.summaryText}>
Total:{' '}
<Text style={styles.amount}>${cartTotalAmount.toFixed(2)}</Text>
</Text>
<Button
color={'green'}
title="Order Now"
disabled={cartItems.length === 0}
onPress={() => {
dispatch(ordersAction.addOrder(cartItems, cartTotalAmount));
}}
/>
</View>
<FlatList
data={cartItems}
keyExtractor={item => item.productId}
renderItem={itemData => (
<CartItem
quantity={itemData.item.quantity}
title={itemData.item.productTitle}
amount={itemData.item.sum}
onRemove={() => {
dispatch(cartAction.removeFromCart(itemData.item.productId));
}}
/>
)}
/>
</View>
);
};
CartScreen.navigationOptions = {
headerTitle: 'Your Cart',
};
const styles = StyleSheet.create({
screen: {
margin: 20,
},
summary: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
marginBottom: 20,
padding: 10,
shadowColor: 'black',
shadowOpacity: 0.26,
shadowOffset: { width: 0, height: 2 },
shadowRadius: 8,
elevation: 5,
borderRadius: 10,
backgroundColor: 'white',
},
summaryText: {
fontSize: 18,
},
amount: {
color: Colors.primary,
},
});
export default CartScreen;
以不同的方式使用
导入
,并将该函数调用为:
import { addOrder } from '../../store/actions/order';
然后按以下方式调用:
dispatch(addOrder(cartItems, cartTotalAmount));
以不同的方式使用
导入
,并将该函数调用为:
import { addOrder } from '../../store/actions/order';
然后按以下方式调用:
dispatch(addOrder(cartItems, cartTotalAmount));
你的进口错了。你导入了orderAction,就像
import ordersAction from '../../store/actions/order';
你应该做的是
import * as ordersAction from '../../store/actions/order';
导入错误后,一切正常。你导入了orderAction,就像
import ordersAction from '../../store/actions/order';
你应该做的是
import * as ordersAction from '../../store/actions/order';
在@Rooban刚刚更新了导入部分之后,事情应该会很顺利。你能试试吗?@Rooban真棒,很乐意帮忙!:)@Rooban刚刚更新了导入部分。你能试试吗?@Rooban真棒,很乐意帮忙!:)