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

javascript是如何实现的

仲孙俊贤
2023-03-14

我想将一个道具传递给React组件,以父组件状态中的布尔值为条件,该组件希望将myProp作为对象,道具类型冲突如下:

//component's code
class MyComponent extends Component {

    ...
    static propTypes = {
        myProp: propTypes.object
    }
    ...
}

现在,我要通过下面的道具:

//Parent component's code
class ParentComponent extends Component {
    constructor() {
        super();
        this.state = {
          par: true,
        }
    }
    render(){
        const obj = {
            key1: 'value1',
            key2: 'value2'
        }
        ...
        return ( 
            <MyComponent
                myProp = {this.state.par && obj}
            />
        )
    }
...
}

执行上述代码时,浏览器控制台中会出现以下警告:

警告:失败的道具类型:提供给MyComponent的类型为boolean的无效道具myProp,应为对象


共有3个答案

欧阳勇军
2023-03-14

我会将布尔值作为属性包含在obj中,并检查子组件中的值

render() {
   const obj = {
        key1: 'value1',
        key2: 'value2'
        par: this.state.par
    }
   return(
       <MyComponent myProp={obj} />
   );
}

并处理子组件中的正确/错误。

阚砚文
2023-03-14

如果。状态parfalse,则为此。状态标准杆数

您可能需要使用条件运算符:

return ( 
    <MyComponent
        myProp = {this.state.par ? obj : null}
    />
)

现在,不管标志是什么,您都提供了类型为objectobjnull)的内容。

或者更隐晦一点,添加一个||

return ( 
    <MyComponent
        myProp = {this.state.par && obj || null}
    />
)

...但我会用条件句。

当然,MyComponent需要了解myProp可能是null。。。

邹书
2023-03-14

在你的情况下myProp={this.state.par

myProp = {this.state.par? obj: null}

根据文件:

true

因此,如果条件为true,则元素

 类似资料:
  • 本文向大家介绍JavaScript是如何实现继承的(六种方式),包括了JavaScript是如何实现继承的(六种方式)的使用技巧和注意事项,需要的朋友参考一下 前言:大多OO语言都支持两种继承方式: 接口继承和实现继承 ,而ECMAScript中无法实现接口继承,ECMAScript只支持实现继承,而且其实现继承主要是依靠 原型链 来实现。 1.原型链 基本思想:利用原型让一个引用类型继承另外一个

  • null 如果我们等待的时间足够长,就会出现超时,导致客户端上出现以下消息。 这就是我在使用长轮询时所面临的问题。它停止进程以防止服务器过载,不是吗?

  • 主要内容:1.ACID,2.隔离性,3.原子性,4.持久性,5.一致性1.ACID (Atomicity)原子性: 事务是最小的执行单位,不允许分割。原子性确保动作要么全部完成,要么完全不起作用; (Consistency)一致性: 执行事务前后,数据保持一致; (Isolation)隔离性: 并发访问数据库时,一个事务不被其他事务所干扰。 (Durability)持久性: 一个事务被提交之后。对数据库中数据的改变是持久的,即使数据库发生故障。 2.隔离性 四种隔离

  • 问题内容: 我目前在OpenLayers上工作,并且有大量的数据可以绘制到矢量层中(大于100000个矢量)。 我现在正尝试将所有这些向量放入JavaScript哈希图中以分析性能。我想知道如何在JavaScript中实现哈希图,它是真正的哈希函数还是只是使用简单数据结构和搜索算法的包装函数? 问题答案: 每个javascript对象都是一个简单的hashmap,它仅接受字符串值作为其键,因此您可

  • 需求:实现一个功能,有多个span标签,内容为用户名,点击span标签,使其以tag的形式出现在一个contentEditable为true的div中,并且tag有背景色和4px的padding,tag不可编辑,当鼠标在div有焦点,则在当前焦点处插入tag,否则将tag加在最后面。 各位有什么实现方案吗 技术:在vue项目中。不要库。原生js实现

  • forEach如何实现同步