javascript - react .js。创建带有参数的方法(props 将是参数)还是在函数体中引用 props 更好?

标签 javascript reactjs function arguments

考虑以下示例:

import React, { Component } from 'react';

class Todos extends Component {

  renderList = (listArray) => { // our todos are function argument
    return listArray.map(listItem => (
      <li>listItem</li>
    ))
  };

  render() {
    const { todos } = this.props;
    return (
      <div className="container">
        renderList(todos);
      </div>
    ); 
  }
}

export default Todos;

第二个例子:

import React, { Component } from 'react';

class Todos extends Component {

  renderList = () => { // but in this example we are explicitly reference to this.props 
    const { todos } = this.props;
    return todos.map(listItem => (
      <li>listItem</li>
    ))
  };

  render() {
    return (
      <div className="container">
        renderList();
      </div>
    ); 
  }
}

export default Todos;

我永远无法决定哪种风格更好。我试着在网上搜索它,但这似乎是一个罕见的困境。所以我的问题是 - 创建带有参数的方法(props 将是参数)还是在函数体中引用 props 更好?有什么真正的区别吗?您的偏好是什么?

最佳答案

作为一般规则,我总是倾向于将所需的参数传递给我的方法,而不是使用类作用域,主要是因为可测试性。
假设你想稍后测试这个方法,你可以只传递你想要的参数,这样更容易和更清晰,而不是必须为你的类设置正确的变量(或者你的方法定义的范围是什么) .

那是回答你的问题,但在你上面写的例子中我也会考虑创建一个子组件来封装你的列表项。

希望这对您有所帮助!

关于javascript - react .js。创建带有参数的方法(props 将是参数)还是在函数体中引用 props 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53490142/

相关文章:

c - 这两个陈述有什么区别?

javascript - 未调用光标更改按钮

javascript - javascript中的两次返回是什么意思?

javascript - 通过 Ajax 调用带有 URL 参数的 PHP 函数

javascript - 如何使用对象数组过滤数组对象

reactjs - : react-scripts: command not found after running npm start

javascript - Aurelia - 在子组件上调用 "Refresh"

javascript - 未通过源部署到托管时如何提供选项?

c++ - 传递 "No/Null/0"作为引用?

c - 定义返回稍后在主程序中使用的字符的函数