更改状态 TextArea.setText 在导航器中不起作用,空引用

Posted

技术标签:

【中文标题】更改状态 TextArea.setText 在导航器中不起作用,空引用【英文标题】:Changing state TextArea.setText not work in a navigator, null reference 【发布时间】:2014-01-03 01:12:36 【问题描述】:

我正在设计一个聊天应用程序,并决定使用状态。

但是在切换到另一个状态后,TextArea.setText 在 navigatorContent 中不起作用,(对对象的空引用)。

在 navigatorContent 之外,代码工作正常。

(第一阶段模拟登录窗口,第二阶段为客户端/服务器的消息区。)

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                       xmlns:s="library://ns.adobe.com/flex/spark"
                       xmlns:mx="library://ns.adobe.com/flex/mx"
                        >
    <fx:Script>
        <![CDATA[


            protected function changeState(event:MouseEvent):void

                // change state
                setCurrentState("State2");

                // set text
                appendText("Hello world");
            

            private function appendText(msg:String):void
                textArea1.text = msg;
            

        ]]>
    </fx:Script>
    <s:states>
        <s:State name="State1"/>
        <s:State name="State2"/>
    </s:states>

    <s:Button includeIn="State1" label="State 2" click="changeState(event)" horizontalCenter="0"
              verticalCenter="0"/>
    <mx:TabNavigator includeIn="State2" x="0" y="0"  >
        <s:NavigatorContent   label="Tab 1">
            <s:TextArea id="textArea1" x="0" y="0"  />
        </s:NavigatorContent>
    </mx:TabNavigator>
</s:WindowedApplication>

【问题讨论】:

好吧,您确实只在State2 中包含了TabNavigator(以及它的子项,包括TextArea)。所以在State1 中没有textArea1。无需多言:这是预期行为。 我是这么认为的,但很少在 TabNavigator 之外工作,仅包含在阶段 2 中的 textArea 【参考方案1】:

这行得通,将 TabNavigator 上的 creationPolicy 属性设置为“all”。

【讨论】:

以上是关于更改状态 TextArea.setText 在导航器中不起作用,空引用的主要内容,如果未能解决你的问题,请参考以下文章

在 redux 状态更改后,React 导航不会更改导航屏幕

如何在 JTextArea 中使用 html 标签

在iOS 7中隐藏导航栏时,如何更改状态栏的颜色?

视图更改时反应导航和状态栏颜色闪烁

更改路由更改 Next.js 的状态

在flutter中进入暗模式时更改系统导航和状态栏的颜色