javascript - 如何对 React 组件值求和
问题描述
我是一个初学者,正在编写一个 React 应用程序,目前三个组件减去根应用程序(是的,这是一个在线课程)。前两个无关紧要,但对于第三个,名为 Total,我需要返回定义为三个常量的练习计数的总和,练习 1~3。
我被教过如何对道具求和,但只是作为{props + props1 + props2 ...},我也可以这样做,但随着零件和练习的数量增加,它就不好了。我可以减少值或编写一个辅助函数,但 React 的工作方式有点不同,我有点迷失了如何为此提供一个良好的可扩展解决方案。
//first two components hidden
const Total = (props) => {
return (
<>
<p>help here!!</p>
</>
)
}
const App = () => {
const course = "Half Stack app development"
const part1 = "Fundamentals of React"
const exercises1 = 10 //this one
const part2 = "Using props to pass data"
const exercises2 = 7 //this one
const part3 = "State of a component"
const exercises3 = 14 //and this one
return (
<div>
<Header name={course} />
<Content name={part1} exercises={exercises1} />
<Content name={part2} exercises={exercises2} />
<Content name={part3} exercises={exercises3} />
<Total exercises= help here!! />
</div>
)
}
解决方案
您应该将数据构建为对象数组。
const exercises = [{ name: 'Fundamentals of React', exercise: 10 }, etc];
在渲染使用中
exercises.map(ex => <Content name={ex.name} exercises={ex.exercise}/>)
总而言之,使用减少https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
推荐阅读
- java - java - 通过正则表达式过滤日志文件
- python - 列表循环中的函数没有在python中一一运行
- database - 为什么数据被两次添加到同一个表中?
- c# - 错误 CS0246:找不到类型或命名空间名称“节点”(您是否缺少 using 指令或程序集引用?)
- r - 为什么来自 shinycssloaders 的 R Shiny Loading Spinner 没有出现
- android-studio - 对 recyclerview 和 imageview 大小感到困惑
- javascript - 使用地址栏获取页面高度?
- ruby-on-rails - Rails 检查 Time.zone.now 是否在 2 个记录时间之间
- tensorflow - tf.data.Dataset 的 Efficientnet inputshape 错误
- java - Map函数Map中泛型的区别