На какие версии Платформы.NET я могу рассчитывать?

Причина в том, что match является пустым {}, когда вы присвоили обновленное значение baseProps внутри вашего блока it.

baseProps = {...baseProps, match: {} };

Это означает, что он не содержит объект params, когда вы к нему обращались:

let URLParams = this.props.match.params;

И именно поэтому он выдает эту ошибку когда вы пытались получить доступ к id, поскольку URLParams - это undefined.


Есть два способа решить эту проблему.

Решение # 1

В своем тесте вместо присвоения пустого объекта match вы можете присвоить ему значение пустого params.

baseProps = {...baseProps, match: { params: {} } };

Решение № 2

Или вы можете назначить запасное значение URLParams, когда вы получаете значение из реквизита, который в этом случае будет пустым объектом.

[1 124] let URLParams = this.props.match.params || {}; [1 124]
6
задан Mehrdad Afshari 17 February 2009 в 20:12
поделиться

7 ответов

Vista действительно имеет.NET 3,0 установленными. XP SP2 не имеет никакой платформы.NET установленной по умолчанию.

12
ответ дан 8 December 2019 в 13:03
поделиться

Можно хотеть считать сообщение в блоге 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 и обнаруживать то, что это должно загрузить, то пойдите, получают его. В Клиентском Руководстве по развертыванию Профиля существует больше деталей.

4
ответ дан 8 December 2019 в 13:03
поделиться

Mehrdad имеет его правильный, SP2 не имеет никакой установки.NET по умолчанию. Стоит отметить, однако, что можно предоставить загрузку пользователям, которые испытывают недостаток во времени выполнения, обеспечивая любую версию, в которой Вы используете связанный. Это - опция через мастер создания одного из установочных пакетов.

2
ответ дан 8 December 2019 в 13:03
поделиться

Как вышеупомянутое указали.NET не установлена по умолчанию. Однако при использовании ASP.NET с C# много вещей могли бы быть получены только путем просмотра веб-сайта (имя компьютера, домен, идентификатор пользователя, и т.д.).

0
ответ дан 8 December 2019 в 13:03
поделиться

Хорошо, если Вы боитесь использования .NET, но клиент не имеет установленным, Вы могли попробовать продукт, который берет все Ваши зависимости .NET и создает изолированный установщик, который будет работать на каждом компьютере со всеми рисками, что это могло повысить до Ваших пользователей (никакие обновления, никакие исправления ошибок и такой).
Вот ссылка:
http://www.remotesoft.com/linker/index.html
Надеюсь, это поможет.

0
ответ дан 8 December 2019 в 13:03
поделиться

Предварительная перспектива: существует значительный шанс, что.NET не будет установлена. И событие, если это - это, может быть 1.0 или 1.1.

Vista включает.NET 3.0 в RTM, но это - дополнительный компонент в Сервере 2008.

Меня также рассмотрели бы о размере и время запуска.NET. В целом это походит на что-то, чтобы быть записанным с как можно меньшим количеством зависимостей.

Править: Исправленная Vista включала 3.0 не 3.5.

0
ответ дан 8 December 2019 в 13:03
поделиться

Я предложил бы избежать.NET, если это возможно, так как большинство версий Windows прибывает без нее, и установщик просто добавит к боли использования Вашей программы. Если это не крупное приложение уже..., но от звука его можно получить то, что Вы хотите с некоторыми КБ исполняемого файла C++ (т.е. почти мгновенная загрузка).

0
ответ дан 8 December 2019 в 13:03
поделиться