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

失败的道具类型无效的道具'值'

那谦
2023-03-14

我在react native中引入了用于搜索的Texinput。代码如下:

      constructor(props){
        super(props);
        this.state = {
          value : "",
          items: [],
        }

        this.handleHeaderSearch = this.handleHeaderSearch.bind(this);
        this.handleSearchBtn = this.handleSearchBtn.bind(this);
      }
      handleSearchBtn(){

      }
      handleHeaderSearch(){
        if(!this.state.value) return;

  }

和:

<TextInput
  value={this.props.value}
  onChange = {this.props.onChange}
  placeholder={"جستجو"}
  blurOnSubmit={false}
  style={{flex:0.9}}
  returnKeyType="done"
/>

每当我在输入文本后运行Android时,我都会看到这个警告:

警告失败属性类型为TextInput提供的“object”类型的无效属性“value”,应为“string”

共有3个答案

奚飞星
2023-03-14

我在输入时遇到同样的错误,如果有人使用这样的功能组件,请将useState(“”)设置为空字符串(如果useState设置为nullundefined)。

转换value={String(text)}不适合我,当我试图将文本的值转换为String时,它会在输入占位符中显示[对象,对象]

const HomeContainer = () => {
  const [text, onChangeText] = useState(''); // Just set useState() to empty string ('')
    
        return (
          <>
          <SafeAreaView>
            <ScrollView styles={styles.scrollView}>
            <Text style={styles.welcome}>Verify Faces</Text>
            <Text></Text>
            <View
            style={[
              styles.container,
              {backgroundColor: COLORS.primaryLight}
            ]}>
                <TextInput style={styles.input} value={text} onChange={onChangeText} placeholder='Enter your name' placeholderTextColor = "#000"/>
                <TextInput style={styles.input} value={text} type='email' onChange={onChangeText} placeholder='Enter your email' placeholderTextColor = "#000"/>
              </View>
              <SimpleImagePicker />
            </ScrollView>
          </SafeAreaView>
          </>
        );
}

郭琦
2023-03-14

在某些情况下,您提到的错误或警告:失败的道具类型:提供给文本输入的类型号的道具值无效,当您尝试输入类型而不是字符串的值时,会出现预期的字符串react-母语的最佳实践是用String()函数包装输入值,如下所示:

<TextInput
  value={String(this.props.value)}
  onChange = {this.props.onChange}
  placeholder={"جستجو"}
  blurOnSubmit={false}
  style={{flex:0.9}}
  returnKeyType="done"
/>

这就是您如何解决警告:失败的道具类型:提供给“文本输入”的“数字”类型的无效道具“值”,预期的“字符串”。

简宏义
2023-03-14

您将值存储在this.state.value中(或者至少这似乎是您的意图),但是您将this.props.value传递到您的TextInput。

如果您确实打算传入此。道具。值,这将有助于了解传递到此组件的内容(向上一级)。

 类似资料:
  • 我得到警告,因为警告:失败的道具类型:组件:道具类型是无效的;它必须是一个函数,通常来自包,但收到了 我的代码是: 我的功能运行正常,但出现此控制台错误是否有人可以帮助我解决此警告?

  • 我收到警告“警告:失败的道具类型:提供给的类型为

  • 我试图展示一个简单的例子。通过将图像路径作为道具发送到要渲染它的组件,来创建jpg图像。以下面的方式。 应用程序。js 图像显示。js 图像lider.js 我的文件夹结构是: 理想情况下,当我通过本地存储的图像路径时,图像应该被显示,但是我没有看到任何图像显示,而是一条警告消息,上面写着:“失败的道具类型:无效的道具‘源’提供给‘转发参考(图像)’”

  • 我得到这个错误: index.js:1375警告:失败的道具类型:提供给的道具无效。 我在我的应用程序中使用了一个外部组件,它是从github获得的,可以在后台渲染视频。这里是链接。https://github.com/samAbeywickrama/reactjs-videobg 它与proptypes有关,但由于它的遗留和react建议使用flo,所以我根本不使用类型检查。

  • https://gist.github.com/js08/dfeab2df8b68240297eb > 我正在尝试为jsx文件编写测试用例 在这方面,我能够通过proptypes 但不是在我顺利通过的地方 我在运行测试用例时出错 下面提供我的错误、测试用例和代码 警告:失败的道具类型:提供给的无效道具 我不知道该怎么做 发生在这次活动中 你能告诉我应该如何把它放在我的测试用例中吗 警告:失败的道具

  • 我尝试动态渲染图像。但我得到了这个错误。动态获取图像源并进行渲染的解决方案是什么? 主要组成部分。js 卡片详情。js 我也尝试过其他方法,但没有成功。我在使用此方法时遇到此错误: 未知命名模块 主要组成部分。js 卡片详情。js