reactjs - 有没有办法将功能代码拆分到另一个文件或组件?
问题描述
你可以看到下面的代码,myFunc有一个很长的代码。有没有办法将此代码拆分为另一个文件或组件?谢谢
import React, { Component } from 'react'
export default class Untitled-1 extends Component {
state = {
first: true,
slideIndex: "2",
}
myFunc(){
if(this.state.slideIndex === "2"){
// do stuff
}else {
// do stuff
}
//this function have a long long code
}
render() {
return (
<div>
<button onClick={() => this.myFunc()}>click me</button>
</div>
)
}
}
解决方案
你可以做一个单独的doStuff.js
const doStuff = (slideIndex) => {
if (slideIndex === '2') {
// do some logic
// maybe return something
}
...
})
export default doStuff
然后在你的组件中导入它
import doStuff from './doStuff.js';
...
myFunc() {
doStuff(this.state.slideIndex);
...
从 Helper 操作状态
帮手
const doStuff = (slideIndex, cb) => {
if (slideIndex === '2') {
// do some logic
cb('slideIndex is now this!')
}
...
})
export default doStuff
主要部件
import doStuff from './doStuff.js';
...
myFunc() {
doStuff(this.state.slideIndex, (result) => this.setState({slideIndex: result});
...
推荐阅读
- git - 您可以仅使用 IDX 和 PACK 文件重建 repo 吗?
- c++ - 一元和二元运算符之间的性能差异
- go - go数组存储为字符串-如何转换为数组
- google-app-engine - 如何为 nodejs Google App Engine 项目制作基本的 app.yaml 文件
- cross-browser - 为什么我的字体大小在 Firefox 和 chrome 移动浏览器上显示不同?
- kubelet - Microk8s 将 kubelet.service 保存在哪里?
- typescript - 基于可写性的 Typescript 条件类型
- javascript - 在同一主机和端口上侦听两次不会触发错误
- typescript - TS:将函数分配给具有泛型类型的`const`
- perl - 在 Perl 中正确使用 IPC::Run