我正在使用一个使用BehaviorSubject的 shareDataService,如下所示。我的问题是,每次我调用服务的next()方法时,任何其他组件中的侦听器订阅都会被多次调用,看起来它多次收到相同的消息。这是预期的行为吗?如何预防?
该服务是一个单身人士。我不会多次调用changeMessage
@Injectable()
export class ShareDataService {
messageSource = new BehaviorSubject(someData);
currentMessage: Observable = this.messageSource.asObservable();
changeMessage(message) {
this.messageSource.next(message);
}
}
Run Code Online (Sandbox Code Playgroud)
组件中的订阅
ngDoCheck() {
this.shareDataService.currentMessage
.pipe(takeUntil(this.ngUnsubscribe))
.subscribe((message) => {
//Do stuff
}
});
}
Run Code Online (Sandbox Code Playgroud) 我的问题如下 - 我使用切换按钮来隐藏/取消隐藏TextView.我得到的是隐藏的空地.
我想要的是'重绘'/'重新加载'布局,而不是隐藏TextView它被删除或添加到它 - 没有在我的布局中间的这个空占位符.
我来自科尔多瓦,之前正在使用Angular.任何帮助???
_addressManual = FindViewById<EditText> (Resource.Id.addressManual);
_addressHomeManualToogle.Click += (o, e) => {
if (_addressHomeManualToogle.Checked)
_addressManual.Visibility = Android.Views.ViewStates.Visible;
else
_addressManual.Visibility = Android.Views.ViewStates.Invisible;
};
Run Code Online (Sandbox Code Playgroud) 我正在调用 Google Maps 并使用 System.JSON 来解析对象。我使用以下方法抓取我的对象:
double placeLat = json["results"][0]["geometry"]["location"]["lat"];
Run Code Online (Sandbox Code Playgroud)
然后我想检查第三个对象是否存在,如果是,则执行一些操作,但显然以下操作失败。我知道谷歌地图在这种情况下返回 2 个对象,我想检查第三个对象以避免对 null 执行操作并进一步传递它们。当谷歌地图返回 3 个对象时,以下工作正常,所以我相信我的条件是错误的。
if (json["results"][2] != null) {
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
指数超出范围。必须是非负的并且小于集合的大小。参数名称:索引
关于如何在使用 System.JSON 的情况下正确构建 if 语句的任何想法?
我想在<script>手动document.createElement,然后到appendChild了audio一个每次eventListener被调用来取代它。一切都能在浏览器中正常运作,除了加载页面时发生的真正快速错误外,持续时间不到100ms。终端中也有错误
ReferenceError: document is not defined
at Object (webpack:///./src/components/Record/Component.svelte?:26:17)
Run Code Online (Sandbox Code Playgroud)
似乎在文档还没有准备好但后来还可以的时候调用了上面的方法,该如何解决?或者在Svelte world(Sapper)中销毁和重新创建组件的首选方法是什么?
我有一个像这样的对象数组:
[{"key":"aaa","value":true},{"key":"bbb","value":false},{"key":"ccc","value":true}]
Run Code Online (Sandbox Code Playgroud)
我如何迭代它来获得一个数组?
["aaa", "bbb", "ccc"]
Run Code Online (Sandbox Code Playgroud)
我正在使用node.js,这是代码.当我循环它时,我只返回第一个"aaa",我想得到一个变量是 3个对象的数组?
router.get('/', function(req, res, next) {
db.executeSql("SELECT this FROM that", function (data, err) {
if (err) {
res.json(err);
}
else {
for (var i in data) {
for (var i=0; i < data.length; i++) {
var obj = data[i];
for (var property in obj) {
var a = (obj[property]);
res.json(a);
}
}
}
}
}
res.end();
});
});
Run Code Online (Sandbox Code Playgroud)
如果你可以指出我正确的方向或给我一些例子,谢谢!
c# ×2
android ×1
angular ×1
arrays ×1
google-maps ×1
if-statement ×1
javascript ×1
json ×1
loops ×1
node.js ×1
rxjs ×1
subscribe ×1
svelte ×1
system.json ×1
xamarin ×1
xaml ×1