简体   繁体   English

我想显示和隐藏一个元素(ActivityIndicator)

[英]I want to show and hide a element (ActivityIndicator)

What I'm trying to do is when I click the button it disappears, and when it's already loaded in another component it shows again the button.我想要做的是当我点击按钮时它消失了,当它已经加载到另一个组件中时它再次显示按钮。

JSX code: JSX 代码:

import { ActivityIndicator } from 'react-native';
     {......}
    {/button besides loading/}
                    <LinearGradient
                        colors={['#D97B29', '#F2B47E']}
                        style={styles.signIn}
                    >
                        <Text style={[styles.textSign, {
                            color:'#fff'
                        }]}>Entrar</Text>
                        {/loading besides button /}
                        <ActivityIndicator size="large" color="#D97B29" />
                    </LinearGradient>
                      {...}

How can I handle it whit the useState?我该如何处理 useState?

Assuming you want to hide/show the indicator when the button is pressed, you need假设您想在按下按钮时隐藏/显示指示器,您需要

const [ showLoader, setShowLoader ] = useState(false);

Your button on press should show something like您按下的按钮应该显示类似

<Button onPress={() => setShowLoader(!showLoader)} text="Some text" />

and your code should look like你的代码应该看起来像

              {showLoader && (
                <ActivityIndicator size="large" color="#D97B29" />             
              )}
              {!showLoader && <LinearGradient
                        colors={['#D97B29', '#F2B47E']}
                        style={styles.signIn}
                    >
                        <Text style={[styles.textSign, {
                            color:'#fff'
                        }]}>Entrar</Text>
                    </LinearGradient> }
    ```

something like this像这样的

{state && <ActivityIndicator size="large" color="#D97B29" />}

if state is true it will show the component如果statetrue ,它将显示该组件

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM