【发布时间】:2021-09-02 09:25:35
【问题描述】:
我正在创建一个包含多个部分的“演示”组件,每个部分都是动态呈现的。
在包含所有不同子项的父组件中,我希望禁用每个部分的“下一步按钮”,直到满足特定条件。按钮位于父组件中。
这个组件没有传递属性:
儿童一例:
export function ChildOne() {
const [condition, setCondition] = useState(false);
return (
<div>
<button onClick={() => setCondition(true)}>
hello world
</button>
</div>
);
}
家长:
import ChildOne, condition from "../child-one"
export default function Parent() {
return(
<div className="childRenderer">
{page == 1 && (
<ChildOne />
)}
</div>
<button isDisabled={condition}>Next</button>
);
}
我不确定如何从子组件传递条件属性,以便我可以在父组件中使用它。此外,这种方法是一种反模式吗?我可以通过其他方式根据子组件中的值有条件地禁用父级中的按钮吗?
谢谢。
【问题讨论】:
-
您可以将函数作为道具传递给子组件,以更新父组件中的状态。基本上,您需要将状态放在父级内部。
标签: javascript reactjs react-native react-hooks