Ошибка типа: rules.map не является функцией - React js - PullRequest
0 голосов
/ 06 февраля 2019

Попытка запустить модульный тест для следующего: Вот фрагмент кода:

    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)}} />

Я обычно запускаю свои тестовые файлы и проверяю, чтобы все реквизиты правильно отображались.Но не знаю, почему это блокирует: inner = rules.map ((rule, 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()
});

1 Ответ

0 голосов
/ 06 февраля 2019

selectedFormJSON.FORM_RULE - это объект

Вы не можете использовать карту для объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...