reactjs - React-Typescript 将动态值传递给兄弟姐妹?
问题描述
嗨,编码和 React 的新手(约 3 周),所以如果我以一种奇怪的方式问这个问题,请告诉我,我会尽力澄清。
我正在研究这两个组件,我想将从 COMPONENT1 动态生成的数据传递到 COMPONENT2(请参见下面的代码)。
在 COMPONENT1 中,我使用地图来动态显示按钮数组。然后使用 JSX 根据定义的对象数组的数据动态添加文本。这很好,但我想做的是获取一些动态渲染的数据并将其传递给 COMPONENT2,即每个按钮都可以将特定的数据发送到 COMPONENT2。
特别是,我希望能够根据我按下的按钮将 obj.text 动态发送到 COMPONENT2。
组件 1
export default function Button(props){
const arrObj = [
{ id: '0', var: 'varString1', text: 'textString1'},
{ id: '1', var: 'varString2', text: 'textString2'}
]
return (
<div>
{arrObj.map( (item) =>
<div key={obj.id}>
<Icon> {`${obj.var}`}<span> {`${obj.text`}</span></Icon>
<Button>{'add something'}</Button>
</div>
}
组件 2
const Style = (props) => {
return(
<div>
<h1>{`Please ${props.ojb.text}`}</h1>
<Button> {`Please ${props.ojb.text}`} </Button>
</div>
)
我所期待的快速示例:
组件1:
<Icon>{refresh}<span> Refresh the page </span>
<Button onClick=(send "Refresh the page to COMPONENT2")></Button>
组件2:
<h1> Please Refresh the Page </h1>
<Button> Please Refresh the Page </Button>
注意:如果有帮助,我将使用 Material-UI 来设置这些组件的样式。
再次请让我知道是否有任何令人困惑的地方,如果有什么我可以做的澄清。此外,在状态管理方面,我宁愿不使用 redux,但我愿意就这方面的任何内容提供反馈。
解决方案
如果 COMPONENT2 是 COMPONENT1 的子组件:
将单击的按钮值保存
obj.text
到 COMPONENT1 的状态并将其传递给 COMPONENT2,您可以添加一个函数来更改按钮onClick
事件上的状态对象。
如果 COMPONENT1 和 COMPONENT2 是兄弟姐妹:
- 在其父组件中创建一个函数,以使用 props 从 COMPONENT1 获取值并将其从父组件传递给 COMPONENT2。
- 使用 Context API 或商店。(如果您的场景很简单,那将是矫枉过正)
最重要的是欢迎使用 React 和快乐编码!:)
推荐阅读
- javascript - 如何使用动态键在对象上动态设置类型
- python - Python中X之后的第一个子字符串
- amazon-web-services - DynamoDB 架构设计:组合排序键与 LSI
- angular - Angular在构建时不替换环境文件
- json - 是否有一个 json 加载器可以读取路径并加载路径引用的文件?
- reactjs - 总是收到 401 错误(“未经授权”)与 axios 对 strapi api 的请求
- html - jQuery从多个div中的div类获取链接?
- azure - 获取 Azure 用户的用户信息:获取零 Content-Length 标头
- reactjs - 使用 Firebase 在 React Native 应用程序中进行基于角色的身份验证
- html - 两个相等的文件输入有时会抛出 TS2345:'FileList | 类型的参数 null' 不能分配给“文件 []”类型的参数,有时可以工作