标签: state-management

安卓 是否保存对话框的实例状态?

我想知道什么是实现此目标的正确方法?有人可以建议我的解决方案是否正确吗?

所以:

  1. 活动已创建
  2. 用户单击按钮并启动对话框(对话框,不是对话框样式的活动)
  3. 用户打开键盘
  4. 我们调用了onSaveInstanceState,以保存打开对话框以及所有相应对话框输入的位置
  5. 我们具有onRestoreInstanceState,在这里我们检查是否显示了对话框,并使用相应的输入重新创建对话框。

这是正确的方法吗?或有东西 这是由Android完成的,而我正在做一些多余的操作。

谢谢

android state-management

5
推荐指数
1
解决办法
3404
查看次数

绑定到StateManager的Ember插口在更改状态两次后不会渲染

我已根据此答案设置状态管理器以跟踪用户登录状态:根据登录状态更改导航栏

但是,我想把它带到下一步,不仅根据状态更新导航栏,而且还有主模板本身.我已经得到了这个大部分工作,所以当你点击登录按钮时它会显示'欢迎你现在登录的消息.' 但是,如果您注销并尝试再次登录,它只会显示一个空白屏幕,就好像它没有正确地重新呈现索引路径一样.这是我的问题的JSFiddle.注意当您单击登录/注销然后第二次登录时会发生什么.不显示"欢迎"消息.

这是我的索引模板:

    {{render navbar}}
        {{authState}}
{{#if isAuthenticated}}
    {{outlet}}
{{else}}
    {{render login}}
{{/if}}
Run Code Online (Sandbox Code Playgroud)

我可以看到'authState'是正确的,但第二次登录时没有呈现'outlet'...

这是完整的jsfiddle:

http://jsfiddle.net/Benmonro/HmJyu/1/

澄清

@ham要求澄清,所以这里是:

我在这里要完成的主要事情是,当状态管理器改变状态时,isAuthenticated当前呈现的内容{{outlet}}应该被换出来呈现的{{render login}}内容可能真的是任何模板.重点是{{outlet}}将显示和隐藏状态变化......

state-management ember.js

5
推荐指数
1
解决办法
570
查看次数

ViewBag和ViewData也是asp.net mvc中状态管理的一部分吗?

有人可以告诉我,ViewDataViewBag是否也是asp.net mvc状态管理的一部分?谢谢

asp.net-mvc state-management asp.net-mvc-3

5
推荐指数
1
解决办法
1万
查看次数

如何在React / Redux应用程序中指定状态的形状?

自从我开始阅读SPA以来,最困扰我的是如何处理应用程序状态。

尽管我在Redux中找到了我一直在寻找的大多数答案,但仍有一些我不确定如何处理的事情。

其中之一是如何指定我要在我的应用程序中使用的“实体”的形状。在过去使用的其他框架中,为此目的我已经看到了ES2015类的广泛使用,但是到目前为止,在React / Redux应用程序中,对象常量是表达应用程序状态的首选方式。昨晚,我在阅读有关在redux文档中规范化数据的内容,尽管它为我提供了有关如何处理深层嵌套对象的好主意,但让我感到缺少某些东西,并且需要在一个单独的地方指定它找到并尽可能清楚地知道应用程序状态的结构/形状。

取得上述文章中使用的样本数据:

{
    posts : {
        byId : {
            "post1" : {
                id : "post1",
                author : "user1",
                body : "......",
                comments : ["comment1", "comment2"]    
            },
            "post2" : {
                id : "post2",
                author : "user2",
                body : "......",
                comments : ["comment3", "comment4", "comment5"]    
            }
        }
        allIds : ["post1", "post2"]
    },
    comments : {
        byId : {
            "comment1" : {
                id : "comment1",
                author : "user2",
                comment : ".....",
            },
            "comment2" : {
                id : …
Run Code Online (Sandbox Code Playgroud)

state-management reactjs redux

5
推荐指数
1
解决办法
792
查看次数

使用 bUnit 和 Moq 测试使用 Fluxor 的剃须刀组件

我在 Blazor 应用程序的一个 razor 组件中使用 Fluxor 进行状态管理,但我不太确定如何设置它以使用 Moq 进行测试。我不能只为学生赋值,因为它只是一个 init 属性。有没有特定的方法来设置 Fluxor 进行测试?

代码

var teacherService = new Mock<ITeacherService>();
            var  localStorage = new Mock<ILocalStorageService>();
            var  studentService = new Mock<IStudentService>();
            var  toastService = new Mock<IToastService>();
            var  NavigationManager = new Mock<NavigationManager>();
            var  Dispatcher = new Mock<IDispatcher>();
            var actionSubscriber = new Mock<IActionSubscriber>();

            var StudentsState = new Mock<IState<StudentsState>>();
            var TeacherState = new Mock<IState<TeacherState>>();

            // Help here
            StudentsState.Setup(t => t.Value.Students = )
Run Code Online (Sandbox Code Playgroud)

moq xunit state-management blazor fluxor

5
推荐指数
2
解决办法
1913
查看次数

状态更新时消费者小部件不会重建 UI

我正在使用 flutter Riverpod(State Notifier Provider)进行状态管理。当我更新状态时,消费者小部件不会重建自身,因此即使我的状态正在更新,UI 也不会更新。我无法调试原因。

Pubspec.yaml

   flutter_riverpod: ^0.14.0+3
Run Code Online (Sandbox Code Playgroud)

Riverpod StateNotifier 提供商

    final dataListModelProvider=StateNotifierProvider((ref)=>ExampleProvider ([]));
Run Code Online (Sandbox Code Playgroud)

供应商


  class ExampleProvider extends StateNotifier<List<Example>>{

     ExampleProvider (List<Example> state):super(state ?? []);

     void createExample(Map exampleData) async{
     try{
        var response= await ExampleDao().createExampleData(exampleData);      // API request - working fine( All the data is coming back from API as expected)
       print(" ===== CREATED EXAMPLE TYPE===========");
       Example example=response;
       List<Example> listExampleData= [...state,example];
       print("========== INITIAL STATE =============Count = ${state.length}");
       print(state);
       state=listExampleData;
       print("========== UPDATED STATE =============Count = ${state.length}");
       print(state);
     }
    }catch(error,stackTrace){
         print(error);
         print(stackTrace);
      } …
Run Code Online (Sandbox Code Playgroud)

state-management dart flutter riverpod

5
推荐指数
0
解决办法
550
查看次数

Riverpod:列表提供程序未重建

当 的 类型为 时, Flutter Riverpod 不会通知Consumer状态变化,而相同的实现对于其他类型来说效果很好。StateNotifierList

在这里,我提供了一个最小的可重现示例:

import 'dart:math';

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ProviderScope(
      child: MaterialApp(
        home: MyHomePage(),
      ),
    );
  }
}

class CounterState extends StateNotifier<List<int>> {
  static final provider = StateProvider(
    (ref) => CounterState(),
  );

  int get last {
    print('last');
    return state.last;
  }

  int get length {
    print('len');
    return state.length;
  }

  // the body of this will be …
Run Code Online (Sandbox Code Playgroud)

state-management dart flutter flutter-state riverpod

5
推荐指数
1
解决办法
5379
查看次数

Flutter bloc 未在 7.2.0 版本中使用 Equatable 进行重建

我创建了简单的应用程序来测试 bloc 7.2.0,并发现 BlocBuilder 在第一次成功重建后不会重建。在每个其他触发器上,bloc 都会发出新状态,但 BlocBuilder 会忽略它。

请注意,如果我 extends Equatable从状态和事件中删除及其覆盖,则每次按下按钮时 BlocBuilder 都会重建 UI。颤振版本2.5.1

如果 Equatable 是必要的,为什么它不能使用它呢?如果 Equatable 不是必需的,为什么在通过 VSCode 扩展进行初始创建时使用它。

我的代码:

块部分

import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';

//bloc
class MainBloc extends Bloc<MainEvent, MainState> {
  MainBloc() : super(MainInitial()) {
    on<MainButtonPressedEvent>(_onMainButtonPressedEvent);
  }

  void _onMainButtonPressedEvent(
      MainButtonPressedEvent event, Emitter<MainState> emit) {
    emit(MainCalculatedState(event.inputText));
  }
}

//states
abstract class MainState extends Equatable {
  const MainState();

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

class MainInitial extends MainState {}

class MainCalculatedState extends MainState {
  final String exportText; …
Run Code Online (Sandbox Code Playgroud)

state-management dart flutter bloc

5
推荐指数
1
解决办法
4960
查看次数

由于提供程序类而对空值使用空检查运算符

当我尝试访问特定屏幕时,我收到“空值检查运算符”。

我屏蔽了我的“user_provider”自定义类以及使用它的部分代码,它正常显示(没有红屏),但没有这些屏幕。

这是自定义类

import 'package:flutter/widgets.dart';
import 'package:purple/models/user.dart';
import 'package:purple/resources/auth_methods.dart';

class UserProvider with ChangeNotifier {
  User? _user;
  final AuthMethods _authMethods = AuthMethods();

  User get getUser => _user!;

  Future<void> refreshUser() async {
    User user = await _authMethods.getUserDetails();
    _user = user;
    notifyListeners();
  }
}
Run Code Online (Sandbox Code Playgroud)

我理解这可能是由于第 9 行中的 bang 运算符造成的,但我是 fluttr 的新手,不知道如何解决它。

state-management dart firebase flutter flutter-provider

5
推荐指数
1
解决办法
734
查看次数

Zustand 从另一个 Zustand 商店获取状态

*我在react应用程序中创建了2个Zustand存储,一个称为UserStore,另一个称为SettingsStore,如何获取从UserStore到SettingsStore的状态?*

import create from 'zustand';

const UserStore = (set, get) => ({

user: {},

});
Run Code Online (Sandbox Code Playgroud)

我想将此“用户”变量用于我的另一个名为 SettingsStore 的商店

import create from 'zustand';

const SettingsStore = (set, get) => ({



});
Run Code Online (Sandbox Code Playgroud)

store state-management reactjs react-state-management zustand

5
推荐指数
2
解决办法
2万
查看次数