react 不能往组件中传入属性的值为 undefined

在使用 andt design 的时候遇到个需求,需要清除 Select 组件选中后的值,让它变成什么都没选中,显示 placeholder

刚开始以为设置为 null 即可,结果发现设置为 null 并没什么卵用,只是得到什么都没匹配上的结果,选择框中为空。

后来发现将 value 值设置为 undefined 即可。

其实,在 react 中,传入 undefined 就代表什么都没传入,这时组件中如果有默认的 props 值则会使用默认值。

所以,上面传入 null,其实也是传入了值,所以 Select 组件会根据这个值去匹配,而没匹配到所以内容为空。

而传入 undefined 的时候,其实表示什么都没传,Select 组件就不会再去匹配,而现实 placeholder 的值。

另外就是要注意,如果通过条件判断,两个分支渲染的组件都是同一个组件,只是可能组件中传入的 props 会不同。这是需要给这两个相同的组件加上 key 属性。如果没有 key 属性,条件变化后,并不会在这两个同类组件中切换,只有加上了 key 属性,才会认为这是两个不同的组件,条件变化后才会切换。

时间: 2025-01-16 05:10:47

react 不能往组件中传入属性的值为 undefined的相关文章

Javascript 中的false,零值,null,undefined和空字符串对象

在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象--false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来看看他们的类型分别是什么: <script type="text/javascript"> alert(typeof(false) === 'boolean'); alert(typeof(0) === 'number'); alert(typeof("")

react:在一个组件中调用别的组件中的方法

先介绍一下要解决的问题:react中一个组件A和一个组件B,其中B是被connect(connect是redux中的方法)包装过的组件,包装成BContainer,A和BContainer的关系是兄弟关系,在同一个父元素下渲染.现在我们要在点击A的时候调用B中的方法 解决思路:主要是用到ref获取BContainer组件挂载之后的实例 render(){ var b = null return(<BContainer ref={(node) => b = node}/>) } ref中的

.clearfix:after(清除浮动)中各个属性及值详细解说

清除浮动.clearfix:after一词,从事web前端的朋友们对此不会陌生吧,下面为大家介绍的是.clearfix:after中用到的所有属性及值的含义,对此感兴趣的朋友可以参考下哈想,希望对大家有所帮助 .clearfix:after { <----在类名为“clearfix”的元素内最后面加入内容: content: "."; <----内容为“.”就是一个英文的句号而已.也可以不写. display: block; <----加入的这个元素转换为块级元素. 

javascript获取对象中的属性及值

function displayProp(obj){ var names=""; for(var name in obj){ names+=name+": "+obj[name]+", "; } alert(names); } 多美完美的体验.跟java的反射很像.

javascript查看一个对象中的属性和值,包括里面有嵌套的情况。

function f(obj){            var s="";            for(prop in obj){                var temp=typeof obj[prop];                                if(temp==="object"){                    s+=prop+":"+"{"+f(obj[prop])+"

React Native入门(三)组件的Props(属性)和State(状态)

相关文章 React Native入门系列 前言 在Android或者iOS开发中我们会用到很多控件,这些控件会有很多的属性.样式等等.同样的,React Native中的组件也有属性.样式和状态. 1.Props(属性) 组件创建时会设置一些参数来定制这个组件,这些参数就是属性,属性一旦设定,在组件的生命周期中就不会改变.下面拿Image的source属性和Text的onPress属性作为举例. Image的source属性 import React, {Component} from 're

vue组件之间的通信以及如何在父组件中调用子组件的方法和属性

在Vue中组件实例之间的作用域是孤立的,以为不能直接在子组件上引用父组件的数据,同时父组件也不能直接使用子组件的数据 一.父组件利用props往子组件传输数据 父组件: <div> <child v-bind:my-message="parentMsg"></child>//注意传递参数时要用-代替驼峰命名,HTML不区分大小写 </div> 子组件: Vue.component('child', { // camelCase in Ja

父组件中调用子组件的方法和属性

方案:利用ref属性可以获取到dom元素或者是子组件,从而可以调用子组件的方法(注意2.0版本用ref取代了el) 1.当ref直接定义在dom元素上时,则通过this.$refs.name可以获取到dom,对dom进行原生的操作 <div class="foods-wrapper" ref="foods-wrapper"> 通过this.$refs获取到dom进行操作(注意ref属性的命名不能用驼峰,同时获取的时候也不能用) let menuList

vue框架之自定义组件中使用v-model

通常 vue在html常见表单空间支持v-model双向绑定例如 1 <input v-model="message" placeholder="edit me"> 2 <p>Message is: {{ message }}</p> 1,当我们自定义组件时如何使用v-model? 答:代码实例如下 2 我们在自定义组件中使用v-model的目的是什么? 答:自定义模板上定义v-mode目的是向外传递值,也就是向他的父组件传递值,