javascript - 将逻辑和 render() 函数从组件中分离出来
问题描述
我希望能够拥有一个渲染功能在另一个文件中的组件,以便在我的组件的逻辑和渲染之间进行分离。
天真地,我试图只做一个包含我的组件的文件,并渲染一个同名的功能组件,我将必要的道具传递给该组件,以便正确显示所有内容。
类似的东西:
// MyComponent.render.jsx
export default MyComponentRender = (props) => {
return {
<View>
// render all components of my view
</View>
}
}
// MyComponent.js
class MyComponent extends Component {
// some logic
render() {
return (
<MyComponentRender
aLotOfProps=....
/>
)
}
}
但是我很快发现自己有时不得不发送相当多的道具和+,例如我有一些 textInputs 需要成为 focus() 或 blur() 以响应我认为的某些逻辑,但结果是,我仅通过发送道具无法控制。很快就变得一团糟!
我想知道是否有一种简单的方法可以将组件的逻辑与其渲染功能分开?也许有一种方法可以将我的组件的上下文传递给我的渲染函数/组件,以便它可以直接访问所有状态并且还可以存储引用等?
谢谢,
维克多
解决方案
推荐阅读
- php - 如何从另一个表中获取与另一个表中相同的 1 个字段匹配的 2 个字段的数据
- macos - os X 上的 Docker .net core 3.0 preview 3 (web api + angular)
- javascript - 使用 JavaScript 对数组中的每个数字求平方 - 为什么只有第一个数字被平方并返回?
- r - 转换为数值时如何保持电平值不变
- java - 尝试创建一个包含学生姓名和年龄的数组并将其输出到文件中,但随机字母出现错误
- tensorflow2.0 - Tensorflow 2.0:最小化一个简单的函数
- python - 使用 websockets 在 Python / Quart 中检测客户端断开连接
- vba - 将包含 where 语句的表值更新
- unetstack - Unetstack 上的 RTS/CTS 协议实现
- c++ - 初始化暗网 opencv