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

失败的道具类型:“标记为中要求的”,但其值是“未定义的”

常小白
2023-03-14

我正在使用流并从另一个组件传递状态。我使用的是proptypes和statetypes。如何解决此错误?警告:失败的道具类型:提供给RoiCalculatorstring类型的无效道具business\u size,应为number。自动计算器

网页包/roi\U计算器/main。jsx

 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/视图/RoiAssumments/index.jsx

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>

共有1个答案

百里承业
2023-03-14

假设标题中建议的错误(必填字段的值<代码>未定义<代码>)和问题中的错误(无效类型<代码>字符串<代码>,预期<代码>编号<代码>)略有不同,我将尝试解决后者。我会查找任何呈现RoiCalculator的地方,检查business\u sizeprop是否作为字符串传递。例如,以下代码段将违反prop类型检查:

<RoiCalculator business_size="30" {...otherProps}/>
<RoiCalculator business_size={"30"} {...otherProps}/>

然而,这是正确的

<RoiCalculator business_size={30} {...otherProps}/>
 类似资料:
  • 问题内容: 如何解决react-redux项目错误屏幕快照中的此错误 警告:道具类型失败:该道具在中标记为必需,但其值为。在提供者中 //在下面存储代码 问题答案: 您默认导出: 您需要通过以下方式导入它: 有两种出口: 必须用进口和 必须不带和导入 这对于从文件导出/导入多个变量/函数很有用:

  • 我是新手。这是我的代码: React Router failed prop“history”未定义 当值未定义时,我如何解决历史记录被标记为必需? 升级React路由器并用browserHistory替换hashHistory 在网上进行了很多搜索,但我无法解决这个问题。反应路由器是版本4

  • 我在react native中引入了用于搜索的Texinput。代码如下: 和: 每当我在输入文本后运行Android时,我都会看到这个警告: 警告失败属性类型为TextInput提供的“object”类型的无效属性“value”,应为“string”

  • 问题内容: 我一直在跟踪Tyler Mcginnis的教程,并用React Router遇到了麻烦,尤其是历史记录。我最终逐字复制了他的代码只是为了看看是否只有我一个人,但我仍然 实现是: 我注意到的是模块中不存在,而是模块内部。遵循找到的API文档,我认为必须通过以下位置调用它: 这样做会产生错误。删除括号,会导致与上述历史记录相同的错误。 当我记录历史记录时,绝对是不确定的,这使我相信问题与i

  • 我得到警告,因为警告:失败的道具类型:组件:道具类型是无效的;它必须是一个函数,通常来自包,但收到了 我的代码是: 我的功能运行正常,但出现此控制台错误是否有人可以帮助我解决此警告?

  • 问题内容: 我是ReactJs的新手。这是我的代码: 并使用webpack进行编译。我也将Main组件添加到了别名中。控制台抛出以下错误: 和网络上的许多搜索,但我无法解决此问题。React Router是版本4 问题答案: 如果您使用的是react-router v4,则还需要安装react-router-dom。之后,从react-router- dom导入BrowserRouter并将Swi