【发布时间】:2020-10-10 12:46:41
【问题描述】:
我想用循环改变 javascript 中的样式。在 Vanilla js 中这是有效的:
for(let i=1; i<13; i++){
const path1 = document.querySelector(".path"+i);
path1.style.animation = "animate 1.4s forwards";
}
但现在我尝试学习 React,但我无法达到相同的效果。我使用参考:
startpath1 = createRef();
for(let i=1; i<13; i++){
this.startpath1.current.style.animation = "animate 1.4s forwards";
}
此代码有效,但我如何在此处更改“startpath1”,例如 startpath + i
感谢您的帮助!
【问题讨论】:
-
在您的第一个示例中,
const是块作用域,每次迭代都会创建一个新变量,保存不同 DOM 元素的值。要使用ref进行这项工作,您同样需要将ref附加到每个 JSX 元素。我不确定上下文,但附加一个添加相应样式的条件类会更直接。 -
直接使用 dom 元素不是反应方式。您应该将动画作为道具传递并在 jsx 渲染中使用它。
标签: javascript reactjs loops for-loop styles