我正在尝试创建一个用于管理类别和项目的React Native应用程序。它使用 React Native Store 来保存所有本地数据。该应用不应该也不会使用互联网API。它只是本地和离线。
我设法在调用addCategory(title)
函数时将项目推送到数据库,但它没有更新categories.js
内的状态
由于缺乏关于本地反应state
的文档,我想知道这里是否有人知道如何通过列表视图更新它以及从categories
更改为{ {1}}到items
组件。
我正在使用React Native 0.26
index.ios.js :
details
和 categories.js :
... // default imports
import Store from 'react-native-store'
const categorieslist = require('./categories')
const DB = {
'categories': Store.model('category'),
'items': Store.model('item')
}
class testapp extends Component {
componentDidMount() {
this.reload()
}
reload() {
DB.categories.find().then(resp => this.setState({
categories: resp
}))
}
addCategory(title) {
var newTitle = title;
DB.categories.add({
title: newTitle,
games: []
})
this.reload()
}
render() {
return (
<View>
<NavigatorIOS
...
initialRoute={{
component: categorieslist,
title: 'Categories',
rightButtonTitle: 'New',
onRightButtonPress: () => {this.addCategory('title')},
passProps: {
categories: this.state.categories
}
}}
/>
</View>
)
}
}
... // AppRegistry registerComponent and stuff
答案 0 :(得分:0)
react-native中的状态与react(web)相同。所以你可以参考这里的文档:https://facebook.github.io/react/docs/component-api.html
state
是每个组件的本地。在reload
方法中,您setState
至this
是testapp
组件,而不是categories
组件。
您必须通过道具将您的州传递给类别组件。