Причина в том, что match
является пустым {}
, когда вы присвоили обновленное значение baseProps
внутри вашего блока it
.
baseProps = {...baseProps, match: {} };
Это означает, что он не содержит объект params
, когда вы к нему обращались:
let URLParams = this.props.match.params;
И именно поэтому он выдает эту ошибку когда вы пытались получить доступ к
blockquote>id
, посколькуURLParams
- этоundefined
.
Есть два способа решить эту проблему.
Решение # 1
В своем тесте вместо присвоения пустого объекта
match
вы можете присвоить ему значение пустогоparams
.baseProps = {...baseProps, match: { params: {} } };
Решение № 2
Или вы можете назначить запасное значение
[1 124]URLParams
, когда вы получаете значение из реквизита, который в этом случае будет пустым объектом.let URLParams = this.props.match.params || {};
[1 124]
Vista действительно имеет.NET 3,0 установленными. XP SP2 не имеет никакой платформы.NET установленной по умолчанию.
Можно хотеть считать сообщение в блоге Scott Hanselman SmallestDotNet: На Размере Платформы.NET, конкретно What's the "Client Profile?"
раздел:
Клиентский Профиль является еще меньшей опцией установки для.NET 3,5 SP1 на XP. Это - маленький 277k bootstrapper. Когда это будет выполнено на Windows XP SP2 машины без установленной Платформы.NET, это загрузит 28 meg полезных нагрузок и даст Вам определенное для клиента подмножество.NET 3.5. Если Клиентский Профиль bootstrapper будет выполнен на машине с какой-либо версией.NET на нем, то это будет действовать то же как 3,5 веб-установщика SP1 и обнаруживать то, что это должно загрузить, то пойдите, получают его. В Клиентском Руководстве по развертыванию Профиля существует больше деталей.
Mehrdad имеет его правильный, SP2 не имеет никакой установки.NET по умолчанию. Стоит отметить, однако, что можно предоставить загрузку пользователям, которые испытывают недостаток во времени выполнения, обеспечивая любую версию, в которой Вы используете связанный. Это - опция через мастер создания одного из установочных пакетов.
Как вышеупомянутое указали.NET не установлена по умолчанию. Однако при использовании ASP.NET с C# много вещей могли бы быть получены только путем просмотра веб-сайта (имя компьютера, домен, идентификатор пользователя, и т.д.).
Хорошо, если Вы боитесь использования .NET, но клиент не имеет установленным, Вы могли попробовать продукт, который берет все Ваши зависимости .NET и создает изолированный установщик, который будет работать на каждом компьютере со всеми рисками, что это могло повысить до Ваших пользователей (никакие обновления, никакие исправления ошибок и такой).
Вот ссылка:
http://www.remotesoft.com/linker/index.html
Надеюсь, это поможет.
Предварительная перспектива: существует значительный шанс, что.NET не будет установлена. И событие, если это - это, может быть 1.0 или 1.1.
Vista включает.NET 3.0 в RTM, но это - дополнительный компонент в Сервере 2008.
Меня также рассмотрели бы о размере и время запуска.NET. В целом это походит на что-то, чтобы быть записанным с как можно меньшим количеством зависимостей.
Править: Исправленная Vista включала 3.0 не 3.5.
Я предложил бы избежать.NET, если это возможно, так как большинство версий Windows прибывает без нее, и установщик просто добавит к боли использования Вашей программы. Если это не крупное приложение уже..., но от звука его можно получить то, что Вы хотите с некоторыми КБ исполняемого файла C++ (т.е. почти мгновенная загрузка).