javascript - 为什么 React 要求在静态 propTypes 中重复使用 props?

标签 javascript reactjs

运行我的代码测试后,React 说缺少一些 props。所以最后我有这个

  static propTypes = {
    'payoutInfo'                    : React.PropTypes.object,
    'payoutInfo.sideBetPayouts'     : React.PropTypes.arr,
    'payoutInfo.sideBetPayouts.map' : React.PropTypes.func,
  }

让我告诉你代码来自哪里

这里是 Action 。 (我正在使用 Flux)

class PayoutLimitActions {

  constructor () {
    this.generateActions('payoutsInfo');
  }

  payoutsInfo (payoutArray) {
    this.actions.payoutsInfo(payoutArray);
    this.dispatch();
  }
}

export default PayoutLimitActions;

这里是商店

import PayoutLimitActions from 'actions/PayoutLimitActions';

@createStore(flux)
class PayoutLimitStore {

  constructor () {
    this.state = {
      payoutProp : localStorage.getItem('payoutArray') ? JSON.parse(localStorage.getItem('payoutArray')) : [],
    };
  }

  @bind(PayoutLimitActions.payoutsInfo)
  payoutsInfo (payoutArray) {
    this.setState({
      payoutProp : payoutArray,
    });
    localStorage.setItem('payoutArray', JSON.stringify(payoutArray));
  }
}

export default PayoutLimitStore;

这里我有一个AuthStore,我在其中使用PayoutLimitActions

axios.post(`${API_ENDPOINT}`, credentials)
  .then( (response) => {
    PayoutLimitActions.payoutsInfo(response.data.lobbyData);
    this.actions.authSuccess({...response.data, ...credentials});
  })

这里是组件

  <TableLimitsTooltip {...{
    payoutProp : this.props.payoutProp,
  }} />

那么,为什么会发生这种情况?

最佳答案

查看组件代码(而不是其使用)会更有用,这样可以更好地了解您在内部实际使用的 Prop 以及它们的调用方式。

无论如何,您定义对象类型的方式存在错误。您必须使用shape type .

static propTypes = {
  payoutInfo: React.PropTypes.shape({
    sideBetPayouts: React.PropTypes.array
  })
}

另外,请注意

  • ArrayPropTypePropTypes.array
  • 无需为 Array.prototype.map 方法定义 PropTypes

关于javascript - 为什么 React 要求在静态 propTypes 中重复使用 props?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34190873/

相关文章:

JavaScript 未捕获类型错误 : showcreate1 is not a function

Javascript替换两个连续的标签

javascript - JS中如何从父节点获取子节点的font-size?

javascript - 使用 javascript 从 XML 文件获取数据

reactjs - react : PropTypes in stateless functional component

javascript - 如何使用 Reactjs 中的 fetch() 获取的 JSON 数据填充 Bootstrap 网格?

javascript - React 中的多个异步 XMLHttpRequest

javascript - 在组件重新渲染时重置滚动位置

php - 根据服务器请求将 PHP header 发送到 html 文件?

javascript - 如何从输入更改 src?