react 父子组件传参,由于父组件传递的参数类型有些问题,不能直接使用,需要做些改变,在哪个阶段处理比较好?
react 父子组件传参,由于父组件传递的参数类型有些问题,不能直接使用,需要做些改变,在哪个阶段处理比较好?
import Child from "./child"
import React, { useState } from "react";
export default function App() {
const [arr, setArr] = useState([
{
name: '张三'
}
])
const update = () => {
setArr([])
}
return (
<div>
<Child arr={arr} update={update}></Child>
</div>
)
}
子组件,
import React, { useState } from "react";
export default function Child(props) {
let arr = props.arr
const [arr2, setArr2] = useState([])
return (
<div>
21
</div>
)
}
useEffect(() => {
setArr2(props.arr) //我是在这个阶段
})
还有哪些方式比较好
回复
1个回答

test
2024-06-20
如果 arr2
单纯是基于 arr
推导出来的,用 useMemo
就行了,不需要子组件再定义一个状态
import React, { useState } from "react";
export default function Child(props) {
const arr2 = useMemo(() => {
// TODO...
}, props.arr)
return (
<div>
21
</div>
)
}
如果 arr2
本身是归属与 子组件
的状态,但 父组件
某个状态更新时,也需要更新 子组件
的状态 那你这种写法时可以的
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容