首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >道具类型失败:``在``中标记为required,但取值为`unfined`

道具类型失败:``在``中标记为required,但取值为`unfined`
EN

Stack Overflow用户
提问于 2019-02-17 03:48:58
回答 1查看 1.7K关注 0票数 0

我正在使用flow并从另一个组件传递状态,我正在使用proptypes和statetypes.How,我可以解决这个错误吗?警告:属性类型失败:为RoiCalculator提供的string类型的属性business_size无效,应为number。在RoiCalculator中

webpack/roi_calculator/main.jsx

代码语言:javascript
复制
 export type StateType = {
  business_size: number,
  organisation_name: string,
  pay_period: boolean,
  timesheet_savings: number,
  roster_optimisation: number,
  reduction_time: number,
  elimination_award: number,
  annual_savings: number,
  annual_subscription: number,
  roi: number,
}

export type PropsType = {
  business_size: number,
  organisation_name: string,
  pay_period: boolean,
  timesheet_savings: number,
  roster_optimisation: number,
  reduction_time: number,
  elimination_award: number,
  annual_savings: number,
  annual_subscription: number,
  roi: number,
}

export default class RoiCalculator extends 
 React.Component<PropsType, StateType> {
 constructor (props: PropsType) {
   super(props)
   this.state = {
     business_size: this.props.business_size,
     organisation_name: this.props.organisation_name,
     pay_period: this.props.pay_period,
     timesheet_savings: 0,
     roster_optimisation: 0,
     reduction_time: 0,
     elimination_award: 0,
     annual_savings: 0,
     annual_subscription: 0,
     roi: 0,
   }
 }

<RoiAssumptions results={this.state}/>

webpack/roi_calculator/views/RoiAssumptions/index.jsx

代码语言:javascript
复制
export type PropsType = {
  business_size: number,
  organisation_name: string,
  pay_period: boolean,
  timesheet_savings: number,
  roster_optimisation: number,
  reduction_time: number,
  elimination_award: number,
  annual_savings: number,
  annual_subscription: number,
  roi: number,
}
 const t = (key, ...args) => globalT(`js.roi_calculator.${key}`, ...args)

export default class RoiAssumptions extends 
React.Component<PropsType, StateType> {
  constructor (props: PropsType) {
     super(props)
  }

        <div className={styles.aside__value}>
          <p>$ 
{this.roundOffResult(this.props.results.timesheet_savings)}</p>      
        </div>
EN

回答 1

Stack Overflow用户

发布于 2019-02-20 13:23:59

假设标题中建议的错误(必填字段的值为undefined)和问题中的错误(无效类型string,预期的number)略有不同,我将尝试解决后者。我会在任何地方查找RoiCalculator是否会检查business_sizeprop是否未作为字符串传递。例如,以下代码片段会违反属性类型检查:

代码语言:javascript
复制
<RoiCalculator business_size="30" {...otherProps}/>
<RoiCalculator business_size={"30"} {...otherProps}/>

然而,这是正确的。

代码语言:javascript
复制
<RoiCalculator business_size={30} {...otherProps}/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54727039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档