我正在使用React Native应用程序。在应用程序中,当用户登录时,会向服务器发出API调用,以使用redux-saga来获取数据。在redux存储中,我维护一个布尔变量“fetchingData”。一旦API调用被启动,它被设置为'true'并且一旦数据被提取或发生一些错误,就被设置为'false'。现在,我想在数据被提取时显示一个微调,并在数据被提取时显示一个FlatList。我知道我可以通过将return语句包装进if-else条件来做到这一点。我想应该有一些更好的方法来做到这一点。 如果有人能帮助我,请告诉我一种在React Native中实现这种有条件呈现的好方法。先谢谢你。在React Native中使用条件呈现的最佳方法
1
A
回答
1
我不这么认为。当调用render()
方法时,适当的组件需要是基于状态返回的。
render() {
const isLoading = this.state.isLoading
return isLoading ?
<Spinner /> //return a spinner
:
<FlatList /> return a list with data
}
1
如果这是你到处使用有几种方法来抽象图案了一个模式:
创建一个通用
<Loading />
组件:class Loading extends React.Component { static defaultProps = { waitingElement: <Spinner />, renderedElement: null }; render() { return this.props.loading ? this.props.waitingElement : this.props.renderedElement; } } // In some other component's `render`: <Loading renderedElement={<component with=props />}, loading={this.state.isWaiting} />
使用higher-订购组件来包装您的组件:
function withLoading(Component, spinner = <Spinner />) { return class extends Component { render() { if (this.props.loading) return spinner; return super.render(); } }; } // Some other file completely export default withLoading(class MyComponent { render() { return "Happy path only!"; } });
相关问题
- 1. react-native:条件呈现不起作用
- 2. React Native - 有条件地呈现视图
- 3. React Native:如何使用耦合条件呈现大量条件视图?
- 4. React Native TouchableHighlight呈现为空
- 5. React Native中的预呈现ListView
- 6. React,Mobx,Firebase条件呈现
- 7. 使用Redux连接条件呈现ReactJs中的子元素的最佳做法?
- 8. iOS的react-native-camera无法使用最新的react-native v0.49
- 9. React中HTML元素的条件呈现?
- 10. React Native条件呈现临时显示内容
- 11. 在原生android视图(UI组件)中呈现react-native组件
- 12. 如何使用redux在react-native-router-flux中实现react-native-drawer?
- 13. React Native呈现相同的路由
- 14. React Native UI组件方法
- 15. RSS无法在React组件中呈现
- 16. 调用子组件的方法 - React Native
- 17. ViewPagerAndroid不使用React-Native在ScrollView下呈现
- 18. 使用现有标记呈现Zend_Form的最佳方式
- 19. 如何react-native呈现可变视图?
- 20. 在呈现方法中渲染React具有承诺的组件
- 21. React Native:我可以单独呈现列表中的组件吗?
- 22. 在React Native中使用TextInput等组件进行DRY的最佳实践?
- 23. 呈现跳线的最佳方式
- 24. 呈现java的最佳方式?
- 25. 有条件不被击中 - 条件呈现React组件
- 26. 在WinForms应用程序中呈现HTML的最佳方式?
- 27. 如何在初始加载React Native组件时呈现诺言
- 28. 组件不会在NavigatorIOS内呈现 - React Native
- 29. react-native如何在同一行上呈现TouchableOpacity组件 - 水平
- 30. 无法使用React-Konva呈现内容