在init()方法上抛出错误的原因是什么?

时间:2017-07-12 01:58:21

标签: javascript ios reactjs react-native amazon-dynamodb

我使用https://www.npmjs.com/package/react-native-dynamodb为我的项目实现DynamoDB访问。我使用了与该网站完全相同的代码。

唯一的问题是,我无法看到我.init()方法给我的方式:Unresolved function or method init()悬停在它上面(我顺便使用WebStorm IDE) 。我相信这就是我的应用程序无法运行的原因。下面是代码以及我在模拟器中得到的错误。

Error in iOS Simulator

这是我的.js文件:

import React, { Component } from 'react';
import { connect } from 'react-redux';
import { ScrollView, Text, View, Button } from 'react-native';
import { logout } from '../redux/actions/auth';
import DropdownMenu from 'react-native-dropdown-menu';
import Icon from './Icon';
import DynamoDB from 'react-native-dynamodb';

let dynamodb = DynamoDB.init({
    credentials: {
        AccessKeyId: 'Some key',
        SecretKey: 'Some key'
    }
    // region: 'us-east-1' - default, optional
    // version: '20120810' - default, optional
})

dynamodb.table('user_choice').PutItem(
    {
        name: 'Jack Sparrow',
        age: 30,
        captain: true
    },

    {
        ConditionExpression: "last_movie <> :movie",
        ExpressionAttributeValues: {
            ":movie": {"S": "Pirates of the Caribbean: On Stranger Tides"}
        }
    })
    .then((response) => console.log(response)) // AWS object response
    .catch((error) => {
        console.log(error)
    })

class Secured extends Component {
    render() {
        var data = [["Literacy Leaders"], ["Wrestling Camp"], ["Screenplay Writing"], ["Panetarium Workshop"]];

        return(
            <ScrollView style={{padding: 20}}>
                <Icon/>

                <Text style={{fontSize: 27}}>
                    {`Welcome ${this.props.username}`}
                </Text>

                <View style={{flex: 1}}>

                    <DropdownMenu style={{flex: 1}}
                                  bgColor={"purple"}  //the background color of the head, default is grey
                                  tintColor={"white"} //the text color of the head, default is white
                                  selectItemColor={"orange"} //the text color of the selected item, default is red
                                  data={data}
                                  maxHeight={410}  // the max height of the menu
                                  handler={(selection, row) => alert(data[selection][row])} >

                        <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}} >
                        </View>
                    </DropdownMenu>

                </View>

                <View style={{margin: 20}}/>

                <Button onPress={(e) => this.userLogout(e)} title="Logout"/>

            </ScrollView>
        );
    }
}

const mapStateToProps = (state, ownProps) => {
    return {
        username: state.auth.username
    };
}

const mapDispatchToProps = (dispatch) => {
    return {
        onLogout: () => { dispatch(logout()); }
    }
}

export default connect(mapStateToProps, mapDispatchToProps)(Secured);

1 个答案:

答案 0 :(得分:0)

我检查了react-native-dynamodb的源代码,似乎DynamoDB未导出为默认导出。

尝试像这样导入:

import { DynamoDB } from 'react-native-dynamodb';