SwiftUI:如何根据视图中的另一个变量初始化变量

时间:2020-07-02 13:12:31

标签: swiftui

我有一个页面,该页面应该有一个自定义的“主题”(一种结构,其中包含标题,背景图像以及字符串数组中的嵌入式问题列表),然后我希望该视图还有一个随机排列的问题列表,这些问题显示在纸牌堆栈中,并且应该是状态变量,以便我可以使用动画将纸牌滑出列表。

我一直在尝试在正文之前初始化问题数组,但是我遇到的问题是属性初始化程序中的“自我不可用”。因此,我尝试在正文之前初始化问题变量,但这也会引起问题。

然后,当我将此视图调用到代码的其他位置时,它正在寻找我要传递currentQuestions参数值而不是currentTopic参数的方法。

我想链接到我刚刚传入currentTopic的视图,它根据当前的Topic创建随机排列的数组,然后可以显示它。有没有更好的方法来设置这些变量/初始化它们?

df$year <-format(df$date_of_bloods,format="%Y")
aggregate(result ~ year + ID, data = df, median)

   year    ID result
1  2001  1234   85.0
2  2007  1234   50.0
3  2013  1234   25.0
4  2016  1234   22.0
5  2022  1234   21.0
6  2010  3789   76.0
7  2013  3789   67.0
8  2016  3789   33.5
9  2001  7457   90.0
10 2007  7457   87.0
11 2013  7457   76.0
12 2016  7457   74.0
13 2004  8769   67.5
14 2007  8769   33.0
15 2013  8769   22.0
16 2001 55667   52.0
17 2007 55667   35.0
18 2010 55667   33.5
19 2016 55667   27.0

1 个答案:

答案 0 :(得分:0)

这是一条可行的方法...因为applicationpath只能通过public static void Setup(TestContext context) { // Launch a new instance of the tested application if (desktopSession == null) { // Create a new session to launch the tested application AppiumOptions options = new AppiumOptions(); options.AddAdditionalCapability("app", ApplicationPath); desktopSession = new WindowsDriver<WindowsElement>( new Uri(WindowsApplicationDriverUrl), options); Assert.IsNotNull(desktopSession); Assert.IsNotNull(desktopSession.SessionId); desktopSession.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1.5); } } 构造函数使用初始化参数进行初始化。

public static void Setup(TestContext context)
    {
        // Launch a new instance of the tested application
        if (desktopSession == null)
        {
            // Create a new session to launch the tested application

            AppiumOptions options = new AppiumOptions();

            options.AddAdditionalCapability("app", new CfrmMain(A.Fake<IMainViewModel>()));

            desktopSession = new WindowsDriver<WindowsElement>(
                new Uri(WindowsApplicationDriverUrl), options);
            Assert.IsNotNull(desktopSession);
            Assert.IsNotNull(desktopSession.SessionId);

            desktopSession.Manage().Timeouts().ImplicitWait =
                TimeSpan.FromSeconds(1.5);
        }
    }