当前位置: 首页 > 知识库问答 >
问题:

如何处理错误:对象作为React子级无效

刘丰羽
2023-03-14

我正在尝试用firebase react Native安装Notification push。我为iOS设置了所有的环境,并添加了请求权限的功能。在那之前,它是工作的,但一旦重新加载应用程序,我有这个错误:

错误:对象作为React子级无效(找到:具有键{_u,_v,_w,_x}得对象).如果要呈现子级集合,请改用数组。

显然是权限函数出了问题,但它仍然工作,因为我有控制台。LOG:[Thu Mar25 2021 14:08:06.506]日志授权状态:1

阿尔索我的代码:

RequestUserPermission = async () => {
    const authStatus = await messaging().requestPermission();
    const enabled =
      authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
      authStatus === messaging.AuthorizationStatus.PROVISIONAL;

    if (enabled) {
      console.log('Authorization status:', authStatus);
    }
  };

和我的渲染

<SafeAreaView style={{backgroundColor: 'black', flex: 1}}>
        <View style={styles.container}>
          {this.RequestUserPermission()}

          <Text style={styles.title}>S'identifier</Text>
          <TextInput
            style={styles.input}
            underlineColorAndroid="transparent"
            placeholder="Email"
            placeholderTextColor="grey"
            autoCapitalize="none"
            onChangeText={this.handleEmail}
          />[...]

共有1个答案

谭凯
2023-03-14

它抛出错误是因为它希望this.requestUserPermission()返回一个有效的react子级,而它不是。

发生这种情况的原因是您选择在render()函数的返回中包含对this.RequestUserPermission()的调用。render()函数应该只返回有效的react元素。

为了解决这个问题,您应该在返回之前调用this.RequestUserPermission(),但是从您的小示例来看,在每个呈现上调用这个函数似乎是违反直觉的,所以它可能应该放在componentDidMount()或相应的useEffect钩子中。

 类似资料:
  • 问题内容: 我正在尝试使用用户代理将json设置为一种状态,但出现错误: 未捕获的不变违规:对象作为React子对象无效(找到:具有键{…}的对象)。如果您打算渲染孩子的集合,请使用数组代替,或者使用React附加组件中的createFragment(object)包装对象。 设置状态的方法: 服务 杰森 问题答案: 您无法执行此操作:由于您的错误提示您尝试执行的操作无效。您正在尝试将整个数组呈现

  • 问题内容: 请帮我。我不知道为什么这段代码不起作用。 它给我一个错误:“对象作为React子对象无效(找到:带有键{itemss}的对象)。如果要渲染子对象的集合,请改用数组。” 为什么{i.title}是对象。这只是一个字符串。我怎样才能解决这个问题?以及实际上如何迭代嵌套对象? 问题答案: 问题是因为你回来了 这是的等效即 您将返回具有键和的对象。你可以写 要么 要么 PS请注意,前两种方法将

  • 在组件的呈现函数中,我有: 所有内容都显示良好,但单击 元素时,我会收到以下错误: 未捕获得错误:不变冲突:对象作为React子级无效(找到:具有键得对象{dispatchConfig,dispatchMarker,nativeEvent,target,currentTarget,type,eventPhase,bubbles,cancelable,timeStamp,defaultPrevent

  • 我在使用apollo查询graphqlendpoint时遇到了React.js问题。下面是有问题的代码。 它的错误是“error:对象作为React子对象无效(found:object with keys{all_checklist_time})。如果要呈现子集合,请使用数组。”

  • 但是,如果我这样使用它,我会得到一个错误: 对象作为React子级无效(找到:具有键{dispatchConfig,_TargetInst,_DispatchListeners,_DispatchInstances,nativeEvent,type,target,currentTarget,eventPhase,bubbles,cancelable,timeStamp,defaultPrevent