Как я могу экспортировать литерал JavaScript в React.NET
Я использую свойства для передачи зависимостей компонентов. Это особенно важно при выполнении рендеринга на стороне сервера с кодом, который зависит от библиотек времени выполнения, таких как jQuery или SignalR. В моем случае мне нужно визуализировать свой компонент на стороне сервера, затем подключить к нему JS и передавать данные в реальном времени в браузере. Поэтому мне не нужна серверная часть SignalR, но мне нужно передать ссылку на концентратор веб-сокетов на клиенте с помощью React.NET.
@Html.React("Comments", new
{
data = Model,
conn = "$.hubConnection()" //<--- I need this to be a literal not a string
})
1 ответ
Покопавшись в исходном коде React.NET, я обнаружил, что он использует Newtonsoft
сериализовать данные. Так что вы можете использовать JRaw
,
@Html.React("Comments", new
{
data = Model,
conn = new Newtonsoft.Json.Linq.JRaw("$.hubConnection()")
})
Тогда мне просто нужно было включить простой макет, чтобы он не выдавал ошибок при рендеринге на стороне сервера.
// this file contains mocks for global variables that are referenced by server-side code but only needed client-side. For example SignalR.
// mock jQuery
var $ = jQuery = {};
// mock SignalR API
$.hubConnection = function() {};
Работает как шарм!