Рефакторинг метода для размещения внутри компонента - PullRequest
0 голосов
/ 12 июня 2018

У меня есть метод, который в настоящее время находится за пределами моего класса компонентов.Как мне сделать рефакторинг, чтобы его можно было поместить в класс компонента?

Пожалуйста, игнорируйте другие функции.Мне просто нужно вставить измененную функцию myFunction в секцию «ожидаемый».

Не могли бы вы помочь мне с этим?

Ток:

const myFunction = (code, data) => (isValid, availableCodes, defaultValue) => {
  if(isValid) {
    const isAvailableCode = isEmpty(availableCodes) || includes(availableCodes, code);
    return isAvailableCode ? get(data, 'originalQty') : defaultValue;
  } 
  return defaultValue;
}

export default class MyComponent extends Component {
  render() {
    const { code , data, minValueAllowed, offersNotAllowed } = this. props;
    const getMinValue = myFunction(code, data);
    const minQty = getMinValue(minValue, offersNotAllowed, 0);
    return (
      <div>
        <Spinner
          minQty={minQty}
          data={data}
        />              
      </div>
   );
  }
}; 

Ожидаемое:

export default class MyComponent extends Component {

//refactored myFunction here....
  render() {
    const { code , data, minValueAllowed, offersNotAllowed } = this. props;
    const getMinValue = myFunction(code, data);
    const minQty = getMinValue(minValue, offersNotAllowed, 0);

    return ( 
      <div>
        <Spinner
          minQty={minQty}
          data={data}
        />              
      </div>
    );
  }
}; 

1 Ответ

0 голосов
/ 12 июня 2018

Это должно работать.Обратите внимание, что this добавлено в myFunction в методе рендеринга.

export default class MyComponent extends Component {
  myFunction = (code, data) => (isValid, availableCodes, defaultValue) => {
    if(isValid) {
      const isAvailableCode = isEmpty(availableCodes) || includes(availableCodes, code);
      return isAvailableCode ? get(data, 'originalQty') : defaultValue;
    } 
    return defaultValue;
  };

  render() {
    const { code , data, minValueAllowed, offersNotAllowed } = this. props;
    const getMinValue = this.myFunction(code, data);
    const minQty = getMinValue(minValue, offersNotAllowed, 0);
    return (
      <div>
        <Spinner
          minQty={minQty}
          data={data}
        />              
      </div>
   );
  }
}; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...