TypeError: module.Name.replace не является функцией

Я новичок в модульном тестировании, и я не могу определить/настроить правильные реквизиты для следующего: js файл REACT / JS шутка/фермент

populateModuleDropdown = (moduleList) => {
  let modules = moduleList.map(module => {
    return (
      <DropdownItem key = {module.ModuleId} onClick = {() => {
      this.props.setTarget(null);
      }}>
      <Link className='full-link'
      onClick = {e => {if (this.props.module.moduleId === module.ModuleId){e.preventDefault()}}}
      to = {'/'+module.Name.replace(/ /g,'')}>
      {module.Name}
      </Link>
      </DropdownItem>
    )
  })
}

Я сделал несколько подобных файлов, и все они выглядят нормально и проходят правильно, но не могут определить и исправить следующую ошибку. Пожалуйста, взгляните на пусть mockmodules

Test.js

configure({adapter: new Adapter()});

describe(' testing  ', () => {

  let tree;
  let baseProps;
  let mockdefaultData;
  let mockmodule = {
    Name:"test",
    moduleId:{},

    beforeEach(() => {
      module : mockmodule,

      it (' Should render without a Module props',() => {
        baseProps = {
          ...baseProps,
          module: {},
        };
        // code
      });

      it(' Should render with ALL of the props', () => {
        //code

      });
    })
  }
})
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
1 130
1

Ответы 1

Что ж, эта ошибка означает, что объект, на который вы ссылаетесь, в данном случае module.Name -- не имеет функции replace. Вопрос, который может решить ваш вопрос:

  1. На какой предполагаемый модуль вы пытаетесь ссылаться? Попробуйте выполнить console.info(module.Name), чтобы убедиться, что это то, что вы ожидаете.

Если вы пытаетесь использовать встроенный в JS метод замены строки, вам также следует проверить, является ли typeof(module.Name) строкой. Если это так, следуйте документации по методу замены строки здесь: https://www.w3schools.com/jsref/jsref_replace.asp

Если это не так, вы можете вернуться назад, чтобы убедиться, что у вас есть правильные данные.

Предполагая, что module.Name на самом деле является строкой, его использование будет следующим:

module.Name = module.Name.replace(/ /g, '');

Другие вопросы по теме