【发布时间】:2018-04-12 11:19:32
【问题描述】:
我只是从服务器获取项目并将它们显示在列表组件中。组件结构是这样的
ServiceScreen(parent) -> ServicesList(child- used inside ServiceScreen) -> ServiceItem (child used inside ServicesList)
一切正常,它显示获取的服务,但它给了我以下警告
警告:只能更新已安装或已安装的组件。这通常 表示您在一个 未安装的组件。这是一个无操作。请检查代码 YellowBox 组件。
代码如下
ServiceScreen.js
constructor(props) {
super(props);
this.props.actions.fetchServices();
}
render() {
const { isFetching } = this.props;
return (
<View style={styles.container}>
<ServicesList services={this.props.services} navigation={this.props.navigation} />
</View>
);
}
ServicesList.js
render() {
return (
<View style={{ flex: 1 }}>
<FlatList
data={this.props.services}
renderItem={
({ item }) =>
<ServiceItem navigation={this.props.navigation} item={item} />
}
/>
</View>
);
}
ServiceItem.js
render() {
const { item } = this.props;
return (
<TouchableOpacity onPress={this.singleService}>
<Text>{item.service_name}</Text>
</TouchableOpacity>
);
}
当我使用 redux 进行状态管理时,我已经映射了服务 状态到我的 ServiceScreen 组件。我把它传给孩子 组件。
【问题讨论】:
-
您在哪里调用获取数据的操作?请发布整个 ServiceScreen 组件和您执行抓取的操作。
-
我在构造函数中调度操作来获取服务。我已经更新了这个问题。 action 成功调度并更新了 redux store 中的状态
标签: javascript reactjs react-native redux redux-saga