javascript - react 类似的组件设计

标签 javascript reactjs

假设我想创建一系列仅正文部分不同的页面,并且它们的页眉和页脚相似。 body 有各种形态。页脚是一些按钮,例如保存和取消按钮。 我正在考虑创建包含页眉和页脚的通用页面,并注入(inject)不同的正文,如下所示(伪代码):

<page body={body1()} />
<page body={body2()} />

const page = (body) => {
  <header />
  {body}
  <footer />
}

const header = () => {
  return <h1>Header</h1>;
}

const footer = () => {
return (
  <div>
    <button>Save<button>
    <button>Cancel<button>
  </div>
 );
}

const body1 = () => {
   //several input, selector
}

const body2 = () => {
   //several input, selector
}

我的问题是,如果body和footer是分开的,当点击保存按钮时,页面如何知道body字段中的哪些信息需要保存?(页面没有body中的信息或者如何页面知道它需要在正文中了解哪些信息)通过将正文提取为单独的组件来解决此类问题是否是正确的方法/模式?

最佳答案

您可以让父级将函数向下传递到位于按钮 onClick() 函数中的页脚。然后,您还将该函数传递给主体,并使表单保存相关信息。

该按钮不需要知道它正在保存什么,只需要知道它被单击即可。

关于javascript - react 类似的组件设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55274460/

相关文章:

javascript - 使用 webRequest 取消另一个扩展发出的请求

javascript - 随机列表元素,多次调用

javascript - 如何在侧面菜单中使用 TouchableOpacity onPress?

javascript - 如何防止执行脚本但在 DOM 中显示它?

reactjs - Gatsby,浏览器中无法访问环境变量

javascript - componentDidMount 如何在执行之前等待来自 redux 存储的值(不使用 setTimeout)?

javascript - Ref 回调属性未按预期工作

javascript - 在 Javascript 中,为什么 [1, 2] == [1, 2] or ({a : 1}) == ({a : 1}) false?

node.js - 将 create-react-app 推送到 github node_modules 文件夹尚未复制

javascript - 如何转换具有特定标识符的字符串?