点击父组件的按钮,打开子组件,并将父组件输入框中的内容带到子组件的输入框中,请写出具体代码
时间: 2023-11-30 09:02:04 浏览: 72
这里提供一种 React 函数式组件的解决方案:
```
import React, { useState } from "react";
import ChildComponent from "./ChildComponent";
function ParentComponent() {
const [childVisible, setChildVisible] = useState(false);
const [inputValue, setInputValue] = useState("");
const handleButtonClick = () => {
setChildVisible(true);
};
const handleInputChange = (event) => {
setInputValue(event.target.value);
};
return (
<>
<div>
<input type="text" value={inputValue} onChange={handleInputChange} />
<button onClick={handleButtonClick}>打开子组件</button>
</div>
{childVisible && (
<ChildComponent inputValue={inputValue} onClose={() => setChildVisible(false)} />
)}
</>
);
}
export default ParentComponent;
```
在这个组件中,我们使用了两个状态钩子:`childVisible` 用于控制子组件的显示和隐藏,`inputValue` 用于保存输入框中的值。当用户点击父组件的按钮时,`handleButtonClick` 函数会将 `childVisible` 状态设置为 `true`,这样子组件就会显示出来。同时,我们将 `inputValue` 作为 `inputValue` 属性传递给子组件,这样子组件就可以读取到输入框中的值了。
子组件的代码可能类似于这样:
```
import React from "react";
function ChildComponent({ inputValue, onClose }) {
const handleInputChange = (event) => {
// do something with the input value
};
return (
<div>
<input type="text" value={inputValue} onChange={handleInputChange} />
<button onClick={onClose}>关闭子组件</button>
</div>
);
}
export default ChildComponent;
```
在子组件中,我们接收了 `inputValue` 和 `onClose` 两个属性,前者用于设置输入框的默认值,后者用于关闭子组件。在输入框的 `onChange` 事件中,我们可以对输入框的值进行操作。
阅读全文