为什么我不能在我的React Native组件中使用connect?

时间:2018-03-30 11:51:50

标签: javascript reactjs react-native

我有一个组件,我需要在(this.props.dispatch)中调用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);

enter image description here

1 个答案:

答案 0 :(得分:2)

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

  

... SyntaxError ...每个模块只允许一次默认导出...

你有

export default class ItemsInCartContent extends Component {

export default connect(mapStateToProps)(ItemsInCartContent);

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

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

export class ItemsInCartContent extends Component {