当前位置: 首页 > 面试题库 >

ReactJS中的动态属性

易阳云
2023-03-14
问题内容

我想动态地在按钮元素上包含/忽略Disabled属性。我已经看到了许多有关动态属性值的示例,但没有看到属性本身的示例。我有以下渲染功能:

render: function() {
    var maybeDisabled = AppStore.cartIsEmpty() ? "disabled" : "";
    return <button {maybeDisabled}>Clear cart</button>
}

由于有“ {”字符,这将引发分析错误。如何基于AppStore.cartIsEmpty()的(布尔值)结果包含/忽略禁用的属性?


问题答案:

添加可选属性(包括disabled和其他可能要使用的其他属性)的最简洁方法是当前使用JSX传播属性:

var Hello = React.createClass({
    render: function() {
        var opts = {};
        if (this.props.disabled) {
            opts['disabled'] = 'disabled';
        }
        return <button {...opts}>Hello {this.props.name}</button>;
    }
});

React.render((<div><Hello name="Disabled" disabled='true' />
    <Hello name="Enabled"  />
</div>)
, document.getElementById('container'));

通过使用传播属性,您可以使用javascript对象实例动态添加(或覆盖)所需的任何属性。在上面的示例中,当属性传递给组件实例时,代码创建了一个disabled键(disabled在这种情况下为值)。disabled``Hello



 类似资料:
  • 因此,我试图用几个HTML输入创建一个动态表单。我有一个对象数组,其中包含应该呈现的的。目前,我能够呈现两个输入,如文本区域,但我如何处理收音机,复选框,选择连同他们的选项?任何帮助都将不胜感激。 请参见此CodeSandBox。

  • 问题内容: 我到处都是关于React动态路由的信息。但是我找不到任何可以解释其工作原理以及与静态路由在各个方面都有何不同的东西。 当我们想使用React-Route在同一页面中渲染某些东西时,我非常了解事情的发展。 我的问题是,当要渲染整个新页面时,它如何工作?因为在这种情况下,必须重新呈现该页面内的所有DOM。因此,这将是静态路由吗?还是在某些方面还是动态的? 我希望我已经清楚了。感谢您预先提供

  • 问题内容: 如果我有一个在其状态上设置了属性的react组件: 是否可以从此处删除? 该replaceState方法看起来像明显的方法来尝试,但它至今已贬值。 问题答案: 您可以设置到,像这样 更新资料 先前的解决方案只是从中删除价值而 存在的技能,如果您需要从中完全删除密钥,则可能的解决方案之一可以是与一位父母同住 ,就像这样

  • 本文向大家介绍js中动态创建json,动态为json添加属性、属性值的实例,包括了js中动态创建json,动态为json添加属性、属性值的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 在js中,一个[]认为是数组;{}认为是Json对象; var json = {}; 定义一个Json对象; 为Json对象赋值: json[aa] = "xx"; eval 解析json报错 提示缺少“

  • 我使用@PropertyInject注释从application.properties文件中获取属性,以便在我的beans中使用。< br >这通常很好,但是现在我需要能够基于一个头值来更改注入的属性。在我的脑海中,它看起来像这样: 我已经考虑过只注入两个属性并在主方法中决定使用哪一个,但这似乎是一种迂回的方式,如果添加更多版本,会有点臃肿 有没有简单的方法可以做到这一点?

  • 我想知道是否有什么方法可以使属性值动态。类似于这样: 感谢您的反馈。在我的例子中,属性值是系统特定的,应该在测试运行时生成。