【问题标题】:How can I handle asynchronous data in an alert?如何处理警报中的异步数据?
【发布时间】:2021-05-01 00:34:41
【问题描述】:

当NicknameButton按钮被按下时,执行confirmname函数,然后执行createTwoButtonAlert函数,我想将通过useSelector接收的数据nicknameError和nicknamesuccess渲染到alert。

但是,nicknamesuccess 和nicknameError 数据获取得太晚,导致null。我该如何解决这个问题?

这是我的代码

    const Nickname = () => {
      const {nicknameError, nicknamesuccess} = useSelector((state) => state?.user);

      const createTwoButtonAlert = () =>
        Alert.alert('중복확인', `${nicknameError}` || `${nicknamesuccess}`, [
          {text: 'OK', onPress: () => console.log('OK Pressed'), style: 'OK'},
        ]);


        const confirmname = useCallback(() => {
          setCheck(true),
            dispatch({
              type: CONFIRM_NICKNAME_REQUEST,
              data: {nick},
            }),
            createTwoButtonAlert();
        }, [nick]);

      return (
        <Container>
          <NicknameContainer>
            <Inputs placeholder="닉네임" value={nick} onChange={onChangeNick} />
          </NicknameContainer>

          <NicknameButton onPress={confirmname}>
                <CheckLabel>check</CheckLabel>
              </NicknameButton>

        </Container>
      );
    };

    export default Nickname;

【问题讨论】:

    标签: javascript node.js reactjs react-native


    【解决方案1】:

    我建议添加一个 useEffect 挂钩,其依赖项为 [nicknameError, nicknameSuccess],并在其中一个值变为非 null 时触发警报。

    【讨论】:

      猜你喜欢
      • 2021-09-26
      • 2018-12-14
      • 1970-01-01
      • 2014-02-13
      • 1970-01-01
      • 2017-09-06
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多