Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我不能在React本机组件中使用connect?_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 为什么我不能在React本机组件中使用connect?

Javascript 为什么我不能在React本机组件中使用connect?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有一个需要调用dispatch的组件(this.props.dispatch),但是dispatch不存在,所以我决定添加一个连接到我的组件,但是这样做时我得到了一个错误。当我的应用程序中的其他组件也有连接并且没有这样做时,我很难理解为什么添加连接会引发错误。如果我删除了连接线,那么错误就会消失。有人知道我为什么会犯这个错误吗 export default class ItemsInCartContent extends Component { constructor(props) {

我有一个需要调用dispatch的组件(this.props.dispatch),但是dispatch不存在,所以我决定添加一个连接到我的组件,但是这样做时我得到了一个错误。当我的应用程序中的其他组件也有连接并且没有这样做时,我很难理解为什么添加连接会引发错误。如果我删除了连接线,那么错误就会消失。有人知道我为什么会犯这个错误吗

export default class ItemsInCartContent extends Component {
    constructor(props) {
        super(props);

        this.state = {
            active: null,
            products: props.products,
            ascending: true,
            sortIcon: 'unsorted',
            sortIconStyle: styles.sortIcon
        };

        this.props.dispatch(getOrderDetails(this.props.orderId));
    }

    render() {
        const cartIcon = (<Icon name="shopping-cart"  style={styles.cartIcon} />);
        const sortIcon = (<Icon name={this.state.sortIcon}  style={this.state.sortIconStyle} />);

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

function mapStateToProps(state) {
    const {products} = state;
    return {
        products
    };
}

export default connect(mapStateToProps)(ItemsInCartContent);
导出默认类ItemsInCartContent扩展组件{
建造师(道具){
超级(道具);
此.state={
活动:空,
产品:道具、产品、,
是的,
巫术:“未分类”,
巫术
};
this.props.dispatch(getOrderDetails(this.props.orderId));
}
render(){
常数cartIcon=();
const-sortIcon=();
报税表(
);
}
}
函数MapStateTops(状态){
const{products}=状态;
返回{
产品
};
}
导出默认连接(MapStateTops)(ItemsInCartContent);

如果仔细阅读日志,错误很明显:

。。。合成错误。。。每个模块只允许一个默认导出

你有

export default class ItemsInCartContent extends Component {

这些导出中只有一个可以是
default

我建议完全删除
ItemsInCartContent
上的导出,因为该组件应与
connect
一起使用,或者,使其明确:

export class ItemsInCartContent extends Component {

如果仔细阅读日志,则错误非常明显:

。。。合成错误。。。每个模块只允许一个默认导出

你有

export default class ItemsInCartContent extends Component {

这些导出中只有一个可以是
default

我建议完全删除
ItemsInCartContent
上的导出,因为该组件应与
connect
一起使用,或者,使其明确:

export class ItemsInCartContent extends Component {

我认为在getOrderDetails函数中调用的异步请求给出了一个错误:您不应该从
构造函数
发送操作。好的,我将对getOrderDetails的调用移动到componentDidMount(),但仍然得到相同的错误。即使我完全删除了那一行,我仍然会得到那个错误。只有删除连接线,错误才会消失。@Tanya那不是答案,那是评论。如果您从错误的位置发送操作,您可能会得到非常令人惊讶的行为。我认为在getOrderDetails函数中调用的异步请求给出了500个操作。您不应该从
构造函数
发送操作。好的,我已将对getOrderDetails的调用移动到componentDidMount(),但仍然收到相同的错误。即使我完全删除了那一行,我仍然会得到那个错误。只有删除连接线,错误才会消失。@Tanya那不是答案,那是评论。如果您从错误的位置发送操作,您可能会出现非常令人惊讶的行为。