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

反应动态默认道具

费星晖
2023-03-14
Button = React.createFactory React.createClass
    getInitialState: ->
    className = undefined
    iconClass = undefined
    label = undefined
    switch @props.type
        when 'save'
            className = 'btn-primary'
            iconClass = 'glyphicon glyphicon-floppy-disk'
            label     = I18n.t('crud.save')
        when 'save_next'
            className = 'btn-success'
            iconClass = 'glyphicon glyphicon-floppy-saved'
            label     = I18n.t('crud.save_new')
        when 'cancel'
            className = 'btn-danger'
            iconClass = 'fa fa-stop'
            label     = I18n.t('crud.cancel')
        else
            className = 'btn-default'
    className: className
    iconClass: iconClass || ''
    label: label || ''

propTypes:
    onClick:     React.PropTypes.func.isRequired
    type:        React.PropTypes.oneOf(['button', 'save', 'save_next', 'cancel'])
    className:   React.PropTypes.string
    title:       React.PropTypes.string
    name:        React.PropTypes.string
    iconClass:   React.PropTypes.string
    label:       React.PropTypes.string
    size:        React.PropTypes.oneOf(['xs', 'sm', 'md', 'lg'])
    disabled:    React.PropTypes.bool
    submit:      React.PropTypes.bool

getDefaultProps: ->
    disabled: false
    className: ''
    label: ''
    size: 'sm'
    submit: false

render: ->
    React.DOM.button
        className: "btn btn-#{@props.size} #{@props.className} #{@state.className}",
        onClick: @props.onClick(),
        type: @state.domType
        title: @props.title,
        name: @props.name,
        disabled: @props.disabled,
        React.DOM.span className: "#{@props.iconClass} #{@state.iconClass}"
        ' '
        @props.label || @state.label

共有1个答案

金晨
2023-03-14

恐怕不行。

在创建组件实例之前调用GetDefaultProps函数。

这意味着您不能从这个地方访问这个引用。

 类似资料:
  • 我已经用ReactJS和ES6进行了几天的实验,并创建了两个组件,即

  • 我尝试定义一个默认的变量log4j.encodinglog4j2.xml: 我将其用作在运行时解析的变量: 此配置导致以下错误: 但是,当我使用非动态变量(即${sys:log4j.encoding},请注意单个$)时,配置成功,该变量在加载配置文件时计算一次。 默认值对动态变量不起作用是预期行为吗? 详细信息:定义PatternLayout的RollingFile由多个记录器使用。每次加载一个记

  • 问题内容: 我是React和REDUX的新手,我只是开发了一个简单的react应用程序,现在我遇到了一个问题,当我在组件中渲染输入元素时,如果我将元素设置为“值”,它将变为只读,但是如果我将其设置为重新设置状态时,“ defaultValue”上的值将永远不会再更新。 这是我的代码: 然后我发现是否通过添加输入元素而对此做出错误 ,它可以正常工作(它在props或state更新时更新,并且我可以重

  • 问题内容: 拥有具有默认方法的接口的动态代理,如何调用默认方法?通过使用类似的方法,您可以得到名为的代理调用处理程序(这在某种程度上是正确的,因为您没有为此接口实现的类)。 我有一个使用ASM来创建实现接口的类并将此类调用委派给此类实例的解决方法。但这不是一个好的解决方案,特别是如果默认方法调用其他接口方法(您将获得委托人乒乓球)。JLS对此问题出人意料地保持沉默… 这里是一个小代码示例: 问题答

  • 问题内容: 我有以下代码片段: 我将如何使用上面的代码来设置每个键的状态。 这是初始状态: 问题答案: 基本规则是: 我们可以使用 计算属性名称 概念,并使用任何 js表达式 动态计算对象属性名称。为此,我们需要将表达式放在里面。 像这样: 解: 按照您发布的代码,你需要把里面,就像这样: 或者我们可以先创建该对象,然后将该对象传递给函数,如下所示: 另外,您不需要。您可以直接使用新值更新状态变量

  • 假设以下和所有组件/fus/fci/ssg只有一个带有站点道具的h1。我想了解为什么它是一个有效的react元素,但这些元素的渲染效果并不相同。一个有h1元素,另一个没有。其想法是不为不同站点创建带有切换的大型组件,每个站点将根据导航选择进行交换。我没有看到任何关于这方面的文件,除非我错过了。。。 导航