manualStateExample function

void manualStateExample()

手动管理状态示例

如果不想使用扩展方法,可以直接使用状态类

Implementation

void manualStateExample() {
  // 手动创建状态
  DKStateQuery<String> state = DkStateQueryIdle();

  // 手动切换状态
  state = DkStateQueryLoading();
  state = DkStateQuerySuccess('数据');
  state = DkStateQueryError('错误信息');
  state = DkStateQueryEmpty();

  // 状态判断
  if (state.isLoading) {
    print('加载中');
  } else if (state.isSuccess) {
    print('成功: ${state.data}');
  } else if (state.isError) {
    print('错误: ${state.errorMessage}');
  } else if (state.isEmpty) {
    print('空数据');
  } else if (state.isIdle) {
    print('空闲');
  }

  // Event 状态同理
  DKStateEvent<String> event = DKStateEventIdle();
  event = DKStateEventLoading('run-id-123');
  event = DKStateEventSuccess('run-id-123', '数据');
  event = DKStateEventError('run-id-123', '错误信息');
  debugPrint('Event: $event'); // 使用变量避免警告
}