我创建了一个暴乱标记,它在循环中呈现了许多svg元素
<circle ref={ keyName } each={ point,keyName in opts.points } ></circle>
现在我有两个条件
要更新特定代码的属性,我正在使用this.refs[ someName ].setAttributes("cx", 30);
要更新所有标签的属性,我应该在循环中使用上述方法吗?或者我应该更新opts.points
并致电this.update()
。
答案 0 :(得分:0)
您只需要更新列表opts.points,而riot.js会更改html,而无需您在评论时使用jQuery引用每个项目。
检查opts.lists是否正在更新,这可能是您的问题,但是您可以通过执行以下操作来解决此问题:
<circle ref={ keyName } each={ point,keyName in this.points } ></circle>
<script>
this.points = opts.points // the parent component is providing a list
someFunction() {
this.points = ["something", "whatever", "another thing"]
this.update()
}
</script>