gpt4 book ai didi

reactjs - React 动态默认 props

转载 作者:行者123 更新时间:2023-12-03 13:32:22 26 4
gpt4 key购买 nike

我有一些依赖于其他 Prop 的默认 Prop 。由于 this.props 不存在于 getDefaultProps() 中,我想知道使用 getInitialState() 和 states 是否是更好的方法。

https://facebook.github.io/react/tips/props-in-getInitialState-as-anti-pattern.html

有更好的方法吗?

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

最佳答案

恐怕不行。

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

这意味着您无法从该位置访问this引用。

关于reactjs - React 动态默认 props,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38790251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com