Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法修改六边形图层中的单个列?_Javascript_Reactjs_Deck.gl_React Map Gl - Fatal编程技术网

Javascript 有没有办法修改六边形图层中的单个列?

Javascript 有没有办法修改六边形图层中的单个列?,javascript,reactjs,deck.gl,react-map-gl,Javascript,Reactjs,Deck.gl,React Map Gl,因此,我创建了一个平面六边形图层,并将各种交互绑定到onClickprop,如下所示 我现在的目标是通过添加大纲、更改该列的颜色或沿这些线进行其他操作来修改单击的单个列。我可能会通过在这一层下面添加另一层来实现暴力解决方案,但文档中没有详细介绍这一点,我想看看是否有其他方法可以修改现有层 我还想获得一些信息,比如给定列中的点数,但我想这与第一部分有关 以下是我目前拥有的: //这里是我为六边形图层创建设置的地方 常数六角形层={ id:'六边形层', 数据:道具G细胞, pickable:是的

因此,我创建了一个平面六边形图层,并将各种交互绑定到
onClick
prop,如下所示

我现在的目标是通过添加大纲、更改该列的颜色或沿这些线进行其他操作来修改单击的单个列。我可能会通过在这一层下面添加另一层来实现暴力解决方案,但文档中没有详细介绍这一点,我想看看是否有其他方法可以修改现有层

我还想获得一些信息,比如给定列中的点数,但我想这与第一部分有关

以下是我目前拥有的:

//这里是我为六边形图层创建设置的地方
常数六角形层={
id:'六边形层',
数据:道具G细胞,
pickable:是的,
对,,
半径:50,
升降比例:0,
自动突出显示:正确,
不透明度:0.3,
getPosition:d=>d.坐标,
//下面是onClick交互
onClick:(层,$event)=>{
//我可以从这里的图层变量中获得一些信息,
//但这还远远不够我要实现的目标
开关(道具ctx相位){
案例“设置”:
道具.移动.放置单元(图层.对象.位置)
打破
“游戏”案例:
//替换为活动单元功能
const activeUnit=Object.keys(props.G.players[props.ctx.currentPlayer].parties)[0]
props.moves.moveUnit(activeUnit、layer.index、layer.object.position)
打破
违约:
控制台错误('未知阶段',props.ctx.phase)
}
返回真值
}
};
//检查一些传入数据以添加屏幕截图中显示的鸭子
//不一定与问题有关,但它们在截图中,所以我将其包括在内
useffect(()=>{
常数tempPieces=[]
props.G.players.forEach(玩家=>{
Object.values(player.pieces).forEach(piece=>{
临时推(
createScenegraphLayer(
零件id,
单元模型图[件类型],
工件坐标,30
)
)
})
})
设置件(临时件)
},[props.G.细胞,props.G.玩家])
//渲染层
返回(
{pieces.map(piece=>(
))}
);
我现在的目标是通过添加大纲、更改该列的颜色或沿这些线进行其他操作来修改单击的单个列

要更改单击列的颜色,可以使用和,方法如下:

const App = () => {
  const [highlightedObjectIndex, setHighlightedObjectIndex] = useState(-1);

  const onClick = info => {
    if (info.object) {
      setHighlightedObjectIndex(info.object.index);
    }
  };

  const layers = [
    new HexagonLayer({
      id: "hexagon-layer",
      data,
      pickable: true,
      radius: 200,
      getPosition: d => d.COORDINATES,
      highlightColor: [0, 0, 255],
      highlightedObjectIndex,
      updateTriggers: {
        highlightedObjectIndex
      },
      onClick
    })
  ];

  return (
    <DeckGL
      initialViewState={INITIAL_VIEW_STATE}
      controller={true}
      layers={layers}
    >
    </DeckGL>
  );
};
const-App=()=>{
const[highlightedObjectIndex,setHighlightedObjectIndex]=useState(-1);
const onClick=info=>{
if(info.object){
setHighlightedObjectIndex(info.object.index);
}
};
常数层=[
新六角形层({
id:“六边形层”,
数据,
pickable:是的,
半径:200,
getPosition:d=>d.坐标,
highlightColor:[0,0,255],
highlightedObjectIndex,
更新触发器:{
highlightedObjectIndex
},
onClick
})
];
返回(
);
};