я столкнулся с той же проблемой с xiomi и царством.
Началось тестирование на мото устройстве, работало нормально.
Похоже, что v0.58.0 изact-native не совместим / ломает что-то в области на данный момент; временным решением будет инициализация вашего проекта RN с использованием v0.57.8
Шаги: response-native init --version = "Reaction-native@0.57.8" projectName cd имя_проекта npm install realm --save response- родная ссылка
и она должна работать
Если вы предпочитаете, чтобы ваши представления имели строго типизированные классы данных представления, это может сработать для вас. Другие решения, вероятно, более правильны , но это хороший баланс между дизайном и практичностью ИМХО.
Главная страница использует строго типизированный класс данных представления, содержащий только относящуюся к нему информацию:
public class MasterViewData
{
public ICollection<string> Navigation { get; set; }
}
Каждое представление использует эта мастер-страница принимает строго типизированный класс данных представления, содержащий его информацию и производный от данных представления мастер-страниц:
public class IndexViewData : MasterViewData
{
public string Name { get; set; }
public float Price { get; set; }
}
Так как я не хочу, чтобы отдельные контроллеры знали что-либо об объединении данных мастер-страниц, я инкапсулирую эту логику в фабрику который передается каждому контроллеру:
public interface IViewDataFactory
{
T Create<T>()
where T : MasterViewData, new()
}
public class ProductController : Controller
{
public ProductController(IViewDataFactory viewDataFactory)
...
public ActionResult Index()
{
var viewData = viewDataFactory.Create<ProductViewData>();
viewData.Name = "My product";
viewData.Price = 9.95;
return View("Index", viewData);
}
}
Наследование соответствует мастеру, чтобы хорошо видеть отношения, но когда дело доходит до рендеринга частичных / пользовательских элементов управления, я собираю их данные представления в данные просмотра страниц, например,
public class IndexViewData : MasterViewData
{
public string Name { get; set; }
public float Price { get; set; }
public SubViewData SubViewData { get; set; }
}
<% Html.RenderPartial("Sub", Model.SubViewData); %>
Это только пример кода и не предназначен для компиляции как есть. , Предназначен для ASP.Net MVC 1.0.
EDIT
Общая ошибка дала лучший ответ ниже. Пожалуйста, прочтите!
Исходный ответ
Microsoft фактически разместила запись на "официальном" способе решить эту проблему. Это обеспечивает пошаговое руководство с объяснением их аргументов.
Короче говоря, они рекомендуют использовать абстрактный класс контроллера, но убедитесь сами.
Другим решениям не хватает элегантности и они занимают слишком много времени. Прошу прощения за то, что сделал эту очень печальную и убогую вещь почти год спустя:
<script runat="server" type="text/C#">
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
MasterModel = SiteMasterViewData.Get(this.Context);
}
protected SiteMasterViewData MasterModel;
</script>
Итак, очевидно, что у меня есть статический метод Get () на SiteMasterViewData, который возвращает SiteMasterViewData.
Я предпочитаю разбивать управляемые данными части главного представления на части и визуализировать их с помощью Html.RenderAction . У этого есть несколько явных преимуществ по сравнению с популярным подходом наследования моделей представления: