У меня есть переменная title
, которую я инициализировал строковым значением.
class NameState{
List name;
var title = 'this is a default one';
NameState({this.title,this.name});
NameState copyWith({title, name}) {
print(title); // this one should be null as there is no data.
print(this.title); // null => why this one null as i have title defined
return new NameState(
title: title ?? this.title,
name: name ?? this.name,
);
}
}
Здесь моя переменная title
имеет значение. но если я не передам никакого значения для заголовка в конструкторе, значение this.title
станет нулевым. Как я могу получить текущее значение this is a default one
в this.title
?
Спасибо.
Вам нужно использовать это
NameState({this.title = 'this is a default one', this.name});
вместо
NameState({this.title,this.name});
Что вы передаете в 1-м звонке?
начальное значение 'это значение по умолчанию'
1-й проход --> "это значение по умолчанию", 2-й проход --> "Измененное значение", 3-й проход --> ничего, и кому вы это передаете, NameState
конструктору или copyWith
методу?
Вот проблема. Допустим, я вызываю конструктор из 3-х мест. по умолчанию имеет значение. для второго вызова скажем, я заменил его значением. и в 3 раза я не передам никакого значения. так что теперь я должен получить второе переданное значение, а не первое. вот так: 1. значение по умолчанию первого вызова = 'это значение по умолчанию' 2. второй вызов заменяет его = 'измененное значение' 3. теперь я ничего не передаю. это ноль. но я не хочу назначать null. я хочу использовать его текущее значение. так что текущее значение
changed value
как я могу это сделать?