From 73e5e4f17c23a7f4832ea2bb36e1bd3799ab9ad9 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 26 四月 2024 14:28:03 +0800
Subject: [PATCH] #
---
src/store/index.js | 3 ++-
src/core/warehouse.jsx | 7 ++++---
src/components/shelf.jsx | 9 ++++++++-
3 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/src/components/shelf.jsx b/src/components/shelf.jsx
index 90d7e8f..065358c 100644
--- a/src/components/shelf.jsx
+++ b/src/components/shelf.jsx
@@ -2,18 +2,25 @@
import { useGLTF, useFBX } from '@react-three/drei';
import * as THREE from 'three';
import { MODEL_SHELF_SCALE } from '@/config/setting'
+import { snapshot } from 'valtio';
+import { useStore } from '@/store';
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader';
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';
import Box from './box';
import * as Common from '../utils/common';
const Shelf = (props) => {
- const { position = [0, 300, 0], rotationY = 0 } = props;
+ const { no, position = [0, 300, 0], rotationY = 0 } = props;
+ const state = useStore();
const { nodes, materials } = useMemo(() => {
return useGLTF('/models/shelf/row.glb');
}, [])
+ useEffect(() => {
+ snapshot(state).models[no] = position;
+ }, [props]);
+
return (
<>
<group rotation-y={rotationY} position={position}>
diff --git a/src/core/warehouse.jsx b/src/core/warehouse.jsx
index d6add15..23eda47 100644
--- a/src/core/warehouse.jsx
+++ b/src/core/warehouse.jsx
@@ -57,13 +57,14 @@
return shelfData.slice(0, 1).map((data, index) => <Shelf key={index} {...data} />)
}, []);
+ const boxEl = useMemo(() => {
+ return boxData.map((data, idx) => <Box key={idx} {...data} />)
+ }, [boxData]);
+
const agvEl = useMemo(() => {
return agvData.map((data, idx) => <Agv key={idx} {...data} />)
}, [agvData]);
- const boxEl = useMemo(() => {
- return boxData.map((data, idx) => <Box key={idx} {...data} />)
- }, [boxData]);
useFrame((state, delta) => {
diff --git a/src/store/index.js b/src/store/index.js
index 74c5a06..adcceb6 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -3,7 +3,8 @@
const store = proxy(
{
- text: 'Hello World'
+ text: 'Hello World',
+ shelf: {},
}
);
--
Gitblit v1.9.1