类型错误:rules.map不是一个函数 - JS作出反应

问题描述 投票:0回答:1

试图运行用于以下内容的单元测试:这里是一块代码的:

    renderAdvancedColumns = () => {
let rules = this.props.selectedFormJSON ? this.props.selectedFormJSON.FORM_RULE : [];
let inner = [];

if(rules.length !== 0) {
  inner = rules.map((rule, i) => { //LINE GIVING ERROR
    return (
      <div className={i===0? 'settings-field first-form-field' : 'settings-field'}>
      <div className='settings-label'>
        {rule.Event}
        <div 
          className={this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.HttpMethod !== 'POST' && 
            this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.HttpMethod !== 'PATCH' ? 
            'tran-button specify-body-button disabled' : 'tran-button specify-body-button'} 
          disabled={this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.HttpMethod === 'GET'}
          onClick={()=>{this.setState({specifyBodyModalOpen: true})}}>
          Specify Body
        </div>
      </div>
      <input className='settings-input' value={this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.Endpoint || ''} onChange={(e) => {this.updateFORMOPERATION(i, 'Endpoint', e.target.value)}} />

我通常开始我的测试文件,并确保他们所有的道具正确呈现。但不确定为什么这是阻塞:内= rules.map((规则,I)=> {

这是我如何申报this.props

const baseProps = {
 selectedFormJSON :{
  Subform:{},
 SubformFilter:{},
 OverlayMapper:{},
 Name:{},
 Form_UID:{},
 FORM_RULE:{
 FORM_OPERATION:{
 Endpoint:{},
 HttpMethod:{},
 },
},


  Describe('FormSettings ', () => {
 let wrapper;
 let tree;

 it('should render using all of the props', () => {  
tree = renderer.create(<BrowserRouter><FormSettings {...baseProps} /> 
 </BrowserRouter>)
let treeJson = tree.toJSON()
expect(treeJson).toMatchSnapshot();
tree.unmount()
});
javascript reactjs unit-testing
1个回答
1
投票

selectedFormJSON.FORM_RULE是一个对象

你不能在对象上使用地图。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.