我正在使用flow并从另一个组件传递状态,我正在使用proptypes和statetypes.How,我可以解决这个错误吗?警告:属性类型失败:为RoiCalculator提供的string类型的属性business_size无效,应为number。在RoiCalculator中
webpack/roi_calculator/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/views/RoiAssumptions/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>发布于 2019-02-20 13:23:59
假设标题中建议的错误(必填字段的值为undefined)和问题中的错误(无效类型string,预期的number)略有不同,我将尝试解决后者。我会在任何地方查找RoiCalculator是否会检查business_size的prop是否未作为字符串传递。例如,以下代码片段会违反属性类型检查:
<RoiCalculator business_size="30" {...otherProps}/>
<RoiCalculator business_size={"30"} {...otherProps}/>然而,这是正确的。
<RoiCalculator business_size={30} {...otherProps}/>https://stackoverflow.com/questions/54727039
复制相似问题