小编ste*_*eve的帖子

Flutter 设置状态未使用新数据更新我的 UI

我有一个ListView.builder小部件,先包裹在 a 中RefreshIndicator,然后再包裹在FutureBuilder. 刷新不会更新我的列表,我必须关闭应用程序并再次打开它,但刷新代码与我的FutureBuilder.

请参阅下面的代码,当我阅读它时,我希望小部件树肯定会更新。

@override
void initState() {
  super.initState();
  taskListFuture= TaskService().getTasks();
}

@override
  Widget build(BuildContext context) {
    return Consumer<TaskData>(builder: (context, taskData, child) {
      return FutureBuilder(
          future: taskListFuture,
          builder: (context, snapshot) {
            if (snapshot.connectionState == ConnectionState.done) {
              taskData.tasks = (snapshot.data as ApiResponseModel).responseBody;
              return RefreshIndicator(
                onRefresh: () async {
                  var responseModel = await TaskService().getTasks();
                  setState(() {
                    taskData.tasks = responseModel.responseBody;
                  });
                },
                child: ListView.builder(
...
...
Run Code Online (Sandbox Code Playgroud)

如果需要更多代码,请告诉我,提前致谢!

积分

  • 我正在使用 StatefulWidget
  • 任务数据是一个扩展ChangeNotifier的类
  • 当我调试刷新时,我可以在列表中看到新数据,但 UI 不会更新 …

flutter flutter-layout

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

如何在ASP.NET Core中的Startup.cs中注册RoleManager

当我在调试模式下运行应用程序时,我的种子方法由于“丢失”服务而失败。错误信息是:

尚未注册类型“Microsoft.AspNetCore.Identity.RoleManager`1[Microsoft.AspNetCore.Identity.IdentityRole]”的服务。

有人可以帮我在StartUp.cs课堂上正确注册这项服务吗?谢谢!

角色配置.cs

public static class RolesConfig
{

    public static async Task InitialiseAsync(ApplicationDbContext context, IServiceProvider serviceProvider)
    {
        var roleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
        string[] roleNames = {"Admin", "Report", "Search"};
        foreach (var roleName in roleNames)
        {
            var roleExist = await roleManager.RoleExistsAsync(roleName);
            if (!roleExist)
                await roleManager.CreateAsync(new IdentityRole(roleName));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

启动.cs

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core

4
推荐指数
1
解决办法
6530
查看次数

Selenium.PhantomJS是无效的命名空间

我正在尽我所能找到一种方法来使用javascript加载页面来抓取网站,这样我就可以说我的播放列表了.我没有运气镀铬驱动器和幻影.请看下面,看看你是否可以帮我解决这个错误.

using OpenQA.Selenium;
//The type or namespace 'PhantomJS' does not exist in the namespace 'OpenQASelenium'
using OpenQA.Selenium.PhantomJS;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace MusicScaper
{
    class TidalScraper
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我的packages.config文件如下:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="HtmlAgilityPack" version="1.8.7" targetFramework="net461" />
  <package id="PhantomJS" version="2.1.1" targetFramework="net461" />
  <package id="Selenium.Support" version="3.14.0" targetFramework="net461" />
  <package id="Selenium.WebDriver" version="3.14.0" targetFramework="net461" />
</packages>
Run Code Online (Sandbox Code Playgroud)

c# selenium web-scraping phantomjs selenium-webdriver

3
推荐指数
1
解决办法
2747
查看次数

铸造问题| 我试图返回类似的类型

我有一个ObservableCollection UrlsList.我的WPF应用程序中还有一个复选框,它使用IsChecked属性修改列表中的项目.我遇到的问题是当我写一些lambda表达式来过滤我想要的数据时,我无法将其分配回UrlsList.它只是将我的列表设置为null,然后崩溃应用程序.谢谢你的帮助.

视图模型

public ObservableCollection<URLModel> UrlsList { get; set; } = new ObservableCollection<URLModel>();

public void CheckBoxOnClick()
{
    if (URLModel.IsChecked)
        UrlsList = UrlsList.Select(url => url.ExistsInDb) as ObservableCollection<URLModel>;
    else
        UrlsList = UrlsList.Select(n => n.ExistsInDb == false) as ObservableCollection<URLModel>;
}
Run Code Online (Sandbox Code Playgroud)

警告消息

c# oop lambda

3
推荐指数
1
解决办法
66
查看次数

如何为内容视图内的选取器设置 ItemDisplayBinding

我有一个 ContentPage,它引用了 ContentView。在此内容视图中,我有一个自定义选取器控件,我绑定了其他属性,例如ItemsSourceItemSelected但 ItemDisplayBinding 很痛苦。我可以在 Xamarin Forms Picker 类的代码中看到,它不像其他字段那样是一个简单的可绑定属性字段。目前,当我单击选择器时,我收到此错误。我知道特定的显示绑定属性,因为选择器无需我初始化即可正常工作。

错误

Java.Lang.NullPointerException
  Message=Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
Run Code Online (Sandbox Code Playgroud)

内容页

<controls:MyPickerView PickerTitle="Select time period"
                                       PickerItemDisplayBinding="{Binding Display}" 
                                       PickerItemsSource="{Binding AppointmentRangeOptions}"/>
Run Code Online (Sandbox Code Playgroud)

MyPickerView.xaml

<ContentView.Content>
        <Frame >
            <Picker Title = "{Binding PickerTitle}"
                                   HorizontalOptions="FillAndExpand"
                                   IsEnabled="{Binding PickerIsEnabled}"
                                   ItemDisplayBinding="{Binding PickerItemDisplayBinding}" 
                                   SelectedItem="{Binding SelectedItem, Mode=TwoWay}" 
                                   ItemsSource="{Binding PickerItemsSource, Mode=OneWay}"/>
        </Frame>
    </ContentView.Content>
Run Code Online (Sandbox Code Playgroud)

MyPickerView.xaml.cs

public partial class MyPickerView : ContentView
{
    public MyPickerView()
    {
        InitializeComponent();
        Content.BindingContext = this;
    }

    public static readonly BindableProperty PickerIsEnabledProperty = …
Run Code Online (Sandbox Code Playgroud)

xaml xamarin.ios xamarin.android xamarin xamarin.forms

2
推荐指数
1
解决办法
789
查看次数

如何将参数传递给 RazorPage OnGet()?

使用剃刀页面我正在尝试建立一个用于销售服装的电子商务网站,我想使用一次页面作为模板来加载男士和女士页面。为了测试这可以在我使用的_Layout.cshtml页面中完成<a asp-page="/Shop" asp-route-id="Mens" class="nav-link">Mens</a>,然后在:

商店.cshtml.cs

    [BindProperties]
public class ShopModel : PageModel
{
    public string Status { get; set; }
    public void OnGet(string gender)
    {
        switch (gender)
        {
            case "Mens":
                //get men page
                Status = gender;
                break;
            case "Womens":
                //get womens page
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

商店.cshtml

@page
@model ECommerce.Pages.Shop.ShopModel
@{
    ViewData["Title"] = "Shop";
}
<p>
    @Model.Status
</p>
Run Code Online (Sandbox Code Playgroud)

当我调试时,性别的值显示为null,因此永远不会设置状态。我会以错误的方式解决这个问题吗?非常感谢任何帮助,谢谢!

c# asp.net-core-mvc asp.net-core-tag-helpers razor-pages

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