Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 组件上下文中的箭头函数导入和使用_Javascript_Reactjs_React Native_Ecmascript 6_Arrow Functions - Fatal编程技术网

Javascript 组件上下文中的箭头函数导入和使用

Javascript 组件上下文中的箭头函数导入和使用,javascript,reactjs,react-native,ecmascript-6,arrow-functions,Javascript,Reactjs,React Native,Ecmascript 6,Arrow Functions,我的问题是,当我们导入箭头函数或公共函数并在组件类上下文中使用它们时,使用它们的最佳方法是什么 我看到了一些如何减少组件逻辑过载的示例,在本例中使用了一些包含部分函数的utils.js 所以我们看到这样的情况: 选择1 在utils.js中: 在component.js中: 在第一种情况下,我们使用.bind(this),函数可以访问组件上下文 选择2 在utils.js中: 在component.js中: 在第二个选项中,我们将箭头函数存储在局部变量中,并再次通过它访问组件上下文 那么在这个场

我的问题是,当我们导入箭头函数或公共函数并在组件类上下文中使用它们时,使用它们的最佳方法是什么

我看到了一些如何减少组件逻辑过载的示例,在本例中使用了一些包含部分函数的utils.js

所以我们看到这样的情况:

选择1 在utils.js中: 在component.js中: 在第一种情况下,我们使用.bind(this),函数可以访问组件上下文

选择2 在utils.js中: 在component.js中: 在第二个选项中,我们将箭头函数存储在局部变量中,并再次通过它访问组件上下文

那么在这个场景中,箭头函数与普通函数相比有什么优势吗? 导入这些功能的最佳实践是什么?
使用箭头或简单函数?

这只是我的观点,但你所有的例子都是一些不好的做法。您可以在函数中存储一些逻辑,但不应该在其中进行状态更新


如果您尝试创建一个自定义钩子,并将您的状态和逻辑存储在该钩子中,可能会更好。

我认为选项2甚至不可能
function someFunction() {
 [some logic]
 this.setState({
  [update some state]
 })
}

export {
 someFunction,
}
import { someFunction } from './utils'

class Component extends Component {

  constructor(props){
    super(props)
    this.someFunction = someFunction.bind(this)
  }
const someFunction = () => {
 [some logic]
 this.setState({
  [update some state]
 })
}

export {
 someFunction,
}
import { someFunction } from './utils'

class Component extends Component {

  constructor(props){
    super(props)
    this.someFunction = someFunction
  }