1 回答
TA贡献1934条经验 获得超2个赞
调用等效于实现普通组件,因为您刚刚声明了一个函数并在组件范围内调用它。Att()
所以这里没什么特别的,状态应该持续下去:
function FocusRiddle() {
const [currentRow, setCurrentRow] = useState({
firstName: "Barack",
lastName: "Obama",
});
function updateRow(name, value) {
setCurrentRow({ ...currentRow, [name]: value });
}
return (
<div>
<div>
<h1>Welcome to Focus Riddle</h1>
<div>
<MyInput
key={"firstName"}
name={"firstName"}
row={currentRow}
action={updateRow}
/>
</div>
<div>
<MyInput
key={"lastName"}
name={"lastName"}
row={currentRow}
action={updateRow}
/>
</div>
<div>
<button onClick={() => alert(JSON.stringify(currentRow))}>
Show Row
</button>
</div>
</div>
</div>
);
}
但是,在调用时,您可以创建 React Element,因为使用 JSX 语法是 React.createElement 的糖语法。深入了解 JSX。<Att/>
因此,有了它,React元素对道具的感知在渲染它们的父级时会发生变化和渲染。
当您键入并调用 时,将呈现,并且组件卸载(因为您在每次渲染上重新声明组件),因此您将失去焦点。inputsetCurrentRowFocusRiddleAttAtt
添加回答
举报