[Dart] Equatable 여러 속성 추가하는 방법 (flutter)

Equatable을 사용하여 여러 final 속성을 props에 포함시키려면, 해당 속성들을 List<Object>로 반환해 주면 됩니다. 여러 개의 속성을 사용하고 싶다면, 간단하게 리스트에 각 속성을 추가하면 됩니다.

예를 들어, final int afinal int b가 있을 때는 다음과 같이 처리할 수 있습니다~

final class ExampleClass extends Equatable {
  final int a;
  final int b;

  const ExampleClass(this.a, this.b);

  @override
  List<Object> get props => [a, b];
}

이렇게 하면 ab 값이 객체의 동등성을 결정하는 데 사용됩니다. 만약 ab 값이 다르면, 두 객체는 다른 것으로 간주됩니다.

동작 설명

  • propsEquatable의 동등성 비교에서 중요한 역할을 하며, 리스트에 포함된 값들이 모두 같아야 두 객체를 동일하다고 간주합니다.
  • [a, b]와 같이 리스트에 여러 속성을 넣음으로써 ab가 동일해야만 두 객체가 동일한 것으로 처리됩니다.

예시 코드

void main() {
  final example1 = ExampleClass(1, 2);
  final example2 = ExampleClass(1, 2);
  final example3 = ExampleClass(3, 4);

  print(example1 == example2); // true
  print(example1 == example3); // false
}

이 경우, example1example2ab가 동일하므로 같은 객체로 간주됩니다. example3은 다른 값이므로 example1과 다르다고 판단됩니다.

정리

final 속성이 여러 개일 경우, 그 속성들을 List<Object>에 추가하여 props로 반환하면 됩니다. Equatable은 이 리스트에 있는 모든 값들을 비교하여 객체의 동등성을 결정합니다.

이전최근
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗