ReactJS中的变量名未定义

时间:2018-03-16 04:24:42

标签: reactjs ecmascript-6

我使用Rails-React运行它以从数据库(mongoDB)返回数据。已成功连接数据库。但是,它返回错误“TypeError:home_fires is undefined”,请帮助...

    03-16 09:50:30.987 11672-11672/com.example.tanmay.shoppingapp E/SQLiteLog: (1) table cart has no column named _id
03-16 09:50:30.991 11672-11672/com.example.tanmay.shoppingapp E/SQLiteDatabase: Error inserting quantity=37 _id=2
                                                                                android.database.sqlite.SQLiteException: table cart has no column named _id (code 1): , while compiling: INSERT INTO cart(quantity,_id) VALUES (?,?)
                                                                                    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
                                                                                    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
                                                                                    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
                                                                                    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
                                                                                    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
                                                                                    at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
                                                                                    at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1472)
                                                                                    at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1343)
                                                                                    at com.example.tanmay.shoppingapp.DataSet.DataProvider.insertCart(DataProvider.java:169)
                                                                                    at com.example.tanmay.shoppingapp.DataSet.DataProvider.insert(DataProvider.java:155)
                                                                                    at android.content.ContentProvider$Transport.insert(ContentProvider.java:264)
                                                                                    at android.content.ContentResolver.insert(ContentResolver.java:1279)
                                                                                    at com.example.tanmay.shoppingapp.YourCart.onCreate(YourCart.java:34)
                                                                                    at android.app.Activity.performCreate(Activity.java:6684)
                                                                                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2652)
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2766)
                                                                                    at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1507)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                    at android.os.Looper.loop(Looper.java:154)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6236)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
03-16 09:50:30.991 11672-11672/com.example.tanmay.shoppingapp E/com.whatever.tag: Failed to insert row for content://com.example.tanmay.shoppingapp/cart
03-16 09:50:30.992 11672-11672/com.example.tanmay.shoppingapp E/SQLiteLog: (1) no such column: _id
03-16 09:50:30.994 11672-11672/com.example.tanmay.shoppingapp D/AndroidRuntime: Shutting down VM
03-16 09:50:30.996 11672-11672/com.example.tanmay.shoppingapp E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                Process: com.example.tanmay.shoppingapp, PID: 11672
                                                                                java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tanmay.shoppingapp/com.example.tanmay.shoppingapp.YourCart}: android.database.sqlite.SQLiteException: no such column: _id (code 1): , while compiling: SELECT _id, quantity FROM cart
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2699)
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2766)
                                                                                    at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1507)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                    at android.os.Looper.loop(Looper.java:154)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6236)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
                                                                                 Caused by: android.database.sqlite.SQLiteException: no such column: _id (code 1): , while compiling: SELECT _id, quantity FROM cart
                                                                                    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
                                                                                    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
                                                                                    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
                                                                                    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
                                                                                    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
                                                                                    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
                                                                                    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
                                                                                    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318)
                                                                                    at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1165)
                                                                                    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1036)
                                                                                    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1204)
                                                                                    at com.example.tanmay.shoppingapp.DataSet.DataProvider.query(DataProvider.java:92)
                                                                                    at android.content.ContentProvider.query(ContentProvider.java:1020)
                                                                                    at android.content.ContentProvider$Transport.query(ContentProvider.java:239)
                                                                                    at android.content.ContentResolver.query(ContentResolver.java:534)
                                                                                    at android.content.ContentResolver.query(ContentResolver.java:475)
                                                                                    at com.example.tanmay.shoppingapp.YourCart.onCreate(YourCart.java:44)
                                                                                    at android.app.Activity.performCreate(Activity.java:6684)
                                                                                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2652)
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2766) 
                                                                                    at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1507) 
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                    at android.os.Looper.loop(Looper.java:154) 
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6236) 
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) 
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781) 

以下是我呈现数据的方式constructor(props) { super(props); let home_fires = type.string; this.state = { error: null, isLoaded: false, home_fires: [] }; } componentDidMount() { fetch("http://localhost:3000/api/home_fires") .then(res => res.json()) .then( (results) => { this.setState({ isLoaded: true, home_fires: results.home_fires }); }, (error) => { this.setState({ isLoaded: true, error }); } ) }

2 个答案:

答案 0 :(得分:0)

我认为你的地图功能应该像

randomColor({ luminosity: 'light', hue: 'blue' });

另外,如果你在同一个组件中调用home_fires,它应该是,

this.props.home_fires.map(home_fire => <div>{home_fire.bla}</div>)

答案 1 :(得分:0)

我认为这是因为构造函数,只需删除

  

让home_fires = type.string;