react函数兄弟组件间通信
在 React 中,兄弟组件之间的通信可以通过共同的父组件作为中间人来实现。下面给出两种常见的方法:
1. 使用父组件作为中间人:父组件可以通过 props 将数据传递给子组件,然后子组件通过回调函数将数据传递给另一个子组件。
```jsx
// Parent.js
import React, { useState } from "react";
import Child1 from "./Child1";
import Child2 from "./Child2";
function Parent() {
const [data, setData] = useState("");
const handleDataChange = (newData) => {
setData(newData);
};
return (
<div>
<Child1 onDataChange={handleDataChange} />
<Child2 data={data} />
</div>
);
}
export default Parent;
```
```jsx
// Child1.js
import React, { useState } from "react";
function Child1({ onDataChange }) {
const [inputValue, setInputValue] = useState("");
const handleInputChange = (e) => {
setInputValue(e.target.value);
};
const handleButtonClick = () => {
onDataChange(inputValue);
};
return (
<div>
<input type="text" value={inputValue} onChange={handleInputChange} />
<button onClick={handleButtonClick}>Send Data</button>
</div>
);
react组件之间通信}
export default Child1;
```
```jsx
// Child2.js
import React from "react";
function Child2({ data }) {
return <div>{data}</div>;
}
export default Child2;
```
2. 使用 Context:可以使用 React 的 Context API 在父组件中创建一个上下文,并在兄弟组件中订阅该上下文以获取数据。
```jsx
// MyContext.js
import React from "react";
const MyContext = ateContext();
export default MyContext;
```
```jsx
// Parent.js
import React, { useState } from "react";
import MyContext from "./MyContext";
import Child1 from "./Child1";
import Child2 from "./Child2";
function Parent() {
const [data, setData] = useState("");
return (
<MyContext.Provider value={{ data, setData }}>
<Child1 />
<Child2 />
</MyContext.Provider>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论