有时渲染的条件非常多,不管是 if-else 还是 switch-case 来做条件渲染都会显得太麻烦。这时我们可以使用「表驱动法」:枚举渲染。

    1. function Loading (props) {
    2. const { loadingText, LOADING_STATUS, loadingStatus, onRetry } = props
    3. return (
    4. <View className='loading-status'>
    5. {
    6. {
    7. 'loading': loadingText,
    8. 'fail': <View onClick={onRetry}> 加载失败, 点击重试 </View>,
    9. 'no-more': '没有更多了'
    10. }[loadingStatus] /** loadingStatus 是 `loading`、`fail`、`no-more` 其中一种状态 **/
    11. }
    12. </View>
    13. )
    14. }