首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三根光纤阵列内部网格的更新

三根光纤阵列内部网格的更新
EN

Stack Overflow用户
提问于 2022-11-14 07:02:02
回答 1查看 17关注 0票数 0

我有一个roundedBox遥测(myShape)数组

我想知道我能不能改变数组中某个形状的位置,

我可以用我想要的位置代替我想要的索引的形状,但这不是很好,

我不想创建一个新的,我只想更新已经存在的位置,并在画布上更新它。

我现在拥有的是:

这就是我想做的: shapes1.props.position = 150,0,150

代码语言:javascript
复制
const [shapes, setShapes] = useState([<MyShape key={0} position={[0, 0, 0]} />, <MyShape key={1} position={[100, 0, 100]} />, <MyShape key={2} position={[200, 0, 200]} />])
useEffect(() => {
  function handleKeyUp(event) {
    if (event.key === 'r') {
      shapes[1] = <MyShape key={1} position={[150, 0, 150]} />
      // shapes[1].props.position = [150, 0, 150];
      setShapes([...shapes]);
      console.log(shapes)
    }
  }
  window.addEventListener('keyup', handleKeyUp)
  return () => {
    window.removeEventListener('keyup', handleKeyUp)
  }
}, [shapes])

return (
  <group >
    {[...shapes]}
  </group>
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-14 07:09:47

代码语言:javascript
复制
shapes[1] = <MyShape key={1} position={[150, 0, 150]} />

代码中的这一行直接修改状态,这是个坏主意。您可以阅读更多关于它的这里

我建议不要在你的状态中存储元素。把这个职位放在你的州里。

我还没有测试过它,但它可能会是这样的:

代码语言:javascript
复制
const [positions, setPositions] = useState([
  [0, 0, 0],
  [100, 0, 100],
  [200, 0, 200],
]);

useEffect(() => {
  function handleKeyUp(event) {
    if (event.key === 'r') {
      setPositions((prevPositions) => {
        const newPositions = [...prevPositions];
        // You might want to check for null index here.
        newPositions[1] = [150, 0, 150];
        return newPositions;
      });
    }
  }
  window.addEventListener('keyup', handleKeyUp);
  return () => {
    window.removeEventListener('keyup', handleKeyUp);
  };
}, [shapes]);

return (
  <group>
    {positions.map((position, idx) => (
      // Using idx here for simplicity purposes.
      <MyShape key={idx} position={position} />
    ))}
  </group>
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74427918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档