【发布时间】:2021-12-14 11:14:13
【问题描述】:
我在 React 中有一个组件。当状态 cloneMode 改变时,它的 prop group 应该更新。为此,我使用以下代码:
结构:
const DraggableElement = ({ list, setList, cloneMode }) => {
return (
<ReactSortable
group={
cloneMode
? { name: "tasks_group", pull: "clone" }
: "tasks_group"
}
key={cloneMode}
list={list}
setList={setList}
animation={200}
delay={1}
className="task-child_drag"
>
{list.map((e) => {
return <TaskItem key={e._id} task={e} />;
})}
</ReactSortable>
);
};
家长:
const Tasks = () => {
const [cloneMode, setCloneMode] = useState(false);
return (
<div className="tasks">
<DraggableElement
list={todo}
setList={setTodo}
cloneMode={cloneMode}
/>
<DraggableElement
list={inProgress}
setList={setInProgress}
cloneMode={cloneMode}
/>
<DraggableElement
list={done}
setList={setDone}
cloneMode={cloneMode}
/>
</div>
);
};
当我运行setCloneMode(true) 时,它不会影响组件。关于如何实现它的任何想法?
【问题讨论】:
-
cloneMode是DraggableElement中的一个道具,你在哪里使用useState?我不清楚。 -
@Adam 很抱歉造成混乱!我已更新问题以包含父组件
-
你如何/在哪里打电话给
setCloneMode(true)? -
你能创建一个codesanbdox吗?
-
你能创建一个 codsandbox 链接吗,这里给出的代码 sn-p 道具没有改变,因为你提到 setCloneMode 正在改变。但是它叫什么名字呢?
标签: javascript reactjs use-state