Search
Write a publication
Pull to refresh
10
0
Виктор Николаев @Veikedo

.net developer

Send message
const Widget = () => {
  if (1 === 1) {
    return <div>Nice One</div>
  }

  return <div>Nice Two</div>
};

const Widget1 = () => (
  <div>
    {1 === 1 && <div>Nice One</div>}
    {2 === 1 && <div>Nice Two</div>}
  </div>
);

const Widget2 = () => (
  <div>
    {() => {
      if (1 === 1) {
        return <div>"Nice One"</div>
      }

      return <div>"Nice Two"</div>
    }}
  </div>
);

Если хотите с проверкой типов, то можно юзать tsx, часть typescript'a.


Кавычки будут (это же xml всё-таки), всё остальное верно.


<widget onClick={() => alert(1)}>
   <children>
      ...
   </children>
</widget>

Может и вкусовщина, но мне кажется, было бы гораздо легче тех же реакт нативщиков перевести на флаттер.

Да, спасибо.


Как реализовать понятно, вопрос о том, есть ли уже готовое.

Ещё вопрос — неужели всех устраивает монструозный (как по мне) трёхэтажный синтаксис описания виджетов? Есть ли планы по разработке подобия jsx?

Понял, спасибо.


Для react native существует, например, nativebase.io, который под каждую платформу отображает нативный элемент.


Видимо, для флаттер придётся подождать сообщества.

Не совсем понял — при использовании флаттер, UI нужно писать отдельно для каждой платформы? Или гугл выпустил какой-то набор компонент, которые по разному отображаются в зависимости от платформы?

Хабр съел ссылку. Подход называется Contextual Validation. Гуглится на сайте Фаулера.


https://martinfowler.com/bliki/ContextualValidation.html

Про Do/CanDo в своё писал Фаулер.

Да я понял о каких книгах речь, спасибо :)

Какую книгу читать сначала: “синюю” или “красную”?

Ну так какую?

Фух, я уж думал, я опозорился начав писать коменты, не прочитав статью.

Хм, если честно у меня более прозаическая догадка.
Игрался с таким кодом


Заголовок спойлера
public class CustomClass
{
    public override string ToString()
    {
        return "CUSTOM";
    }

    public virtual object SomeVirtualMethod()
    {
        return "SomeVirtualMethod";
    }

    public object SomeMethod()
    {
        return "SomeMethod";
    }
}

[StructLayout(LayoutKind.Explicit)]
public class CustomStructWithLayout
{
    [FieldOffset(0)]
    public string Str;

    [FieldOffset(0)]
    public CustomClass SomeInstance;
}

class Program
{
    static void Main(string[] args)
    {
        CustomStructWithLayout instance = new CustomStructWithLayout();
        instance.SomeInstance = new CustomClass();
        instance.Str = "4564";
        Console.WriteLine(instance.SomeInstance.GetType()); //System.String
        Console.WriteLine(instance.SomeInstance.ToString()); //4564     

        Console.WriteLine(instance.SomeInstance.SomeMethod()); // SomeMethod
        Console.WriteLine(instance.SomeInstance.SomeVirtualMethod()); // null       
    }
}

И как мне кажется, для виртуального метода CLR генерит метод-заглушку, возвращающий дефолтное значение.


Поскольку, насколько я понимаю, для вызова виртуального метода CLR необходимо действительно найти этот метод в иерархии типа, и так как метода SomeVirtualMethod нет в иерархии типа string, то и возвращается эта заглушка.

Разрядка для мозгов: Что будет выведено при вызове виртуального свойства CustomClass?

А можно для не просвящённых почему так?
Я понимаю, какой был бы результат, если бы свойство было не виртуальным, но почему возвращается null для виртуального я не догоняю.


Мне бы хотелось получить что-нибудь вроде MethodNotFoundException.

Вы же понимаете, что multipart это стандарт и никак не привязан к технологии?
Не использовать Ajax.BeginForm, использовать FormData, сделать php обработчик и еще тучи советов по увеличению программного кода.

Думаю, стоило прислушаться к совету и не использовать Ajax.BeginForm.
Кода получилось бы меньше, да и получился бы он более поддерживаемым. А с учётом кучи JS библиотек, задачу вы решили бы быстрее.


Да и логику вашего обработчика/хелпера я так и не понял.

Не так давно я мониторил место на диске и обнаружил 4гб папку в профиле хрома — indexeddb от my.mail.ru. При этом я даж хз когда я туда заходил.

юзайте сагу наконец

Ну, в общем-то, в статье. Под заголовками "Код без cross-cutting concern" и "Код с cross-cutting concern"

Information

Rating
10,304-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity