好吧,所以我正在做一些调用ajax的东西,并收到一堆消息列表。消息处理或完成,由变量isProcessed标记,如果它等于0,则不是,如果它是1则是。
无论如何,我将收到的消息设置为名为'messageArray'的组件中的单个变量...我有2个单独的变量,称为已处理和已完成。这些函数基本上等于messageArray的过滤器。
但是我的问题是,当messageArray变量发生变化时,为什么这些变量不会改变,我该如何解决这个问题。这就是它的样子。
messageArray: Array<any> = []
processing = this.messageArray.filter((message) => {
return message.isProcessed === 0
});
completed = this.messageArray.filter((message) => {
return message.isProcessed === 1
});
感谢您的帮助!
编辑: 因此,当组件启动时,它最初将messageArray设置为空,如上例所示,但是,它也会立即使用服务进行AJAX调用以获取用户的消息,并将结果设置为messageArray。
getMessages(info) {
let messageJSON = JSON.parse(info);
this.messageArray = messageJSON.m
}
理想情况下,在使用新内容设置MessageArray之后,它还应该更改数组的“处理”和“已完成”,因为它们只是该数组的过滤版本。
EDIT2: 一个更简单的例子就是这个。我有两个变量。一个是'x'而另一个叫doubleX,其中doubleX = x * 2.我需要的是当变量x被改变时,我还需要这个变量'doubleX'来改变以使用'x'的新值。
答案 0 :(得分:0)
import { MemberView } from 'MemberView'
export class MemberController{
constructor(){
}
}
这会根据messageArray: Array<any> = []
processing = this.messageArray.filter((message) => {
return message.isProcessed === 0
});
completed = this.messageArray.filter((message) => {
return message.isProcessed === 1
});
的当前值计算processing
和completed
,该值为空。所以这两个数组都是空的。正如您在问题中所说,当messagesArray发生更改时,需要计算这两个数组。所以代码应该是:
messageArray
您还应该停止输入任何变量。使用真实的类或接口作为元素的类型。