通过appium运行时,RN Picker的onValueChange在首次渲染时被调用

问题描述

问题 我使用@反应本地社区/选择器创建一个选择器领域,它有一个叫onValueChange回调函数,当选择一些值被调用。现在,当我在我的android设备上正常运行我的应用程序时,在第一次渲染时,不会触发onValueChange。但是,当我通过Appium运行我的应用程序时,onValueChange在第一次渲染时被调用。 如果使用某些函数在父元素中调用setState,则将导致无限渲染。我在代码或Appium方面做错了吗?

环境: 操作系统-> macOS High Sierra版本10.13.6(17G14019) 鸦片:1.17.1-1 React Native:0.61.2 选择器版本:1.6.6 节点:10.14.2 Npm:6.4.1

重现问题 在虚拟反应本地项目中安装@ react-native-community / picker。 在app.js中编写以下代码后 当应用正常运行时,控制台日志不会在第一个渲染器上记录任何内容。但是,当应用程序通过appium运行时,它将字符串记录在第一个渲染器上。

import React,{ useState } from 'react';
import {Picker} from '@react-native-community/picker';
const app = () => {
  const [language,setLanguage] = useState('')
  return (
    <Picker
      selectedValue={language}
      style={{height: 50,width: 100}}
      onValueChange={(itemValue,itemIndex) => {
      console.log('on change called')
      setLanguage(itemValue) }}
    >
      <Picker.Item label="Java" value="java" />
      <Picker.Item label="JavaScript" value="js" />
    </Picker>
  )
}

我想知道是否有人曾与Appium合作并且遇到过此问题。如果有人得到任何答案。

感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)