Как обработать условный оператор w JavaScript + React? - PullRequest
2 голосов
/ 14 мая 2019

У меня есть следующий JavaScript:

const { inverseDirection } = this.props;

, если значение inverseDirection равно false, мне нужно следующее:

const dashOffset =
  dashArray - (dashArray * this.state.percentProgress) / 100;

, если значение true для InverseDirectionМне нужно следующее:

const dashOffset =
  dashArray + (dashArray * this.state.percentProgress) / 100;

Как правильно элегантно закодировать это без дублирования всей строки?

Ответы [ 2 ]

2 голосов
/ 14 мая 2019

Вы можете сделать

const dashOffset = inverseDirection 
? ( dashArray + (dashArray * this.state.percentProgress) / 100) 
: (dashArray - (dashArray * this.state.percentProgress) / 100)

Не очень элегантно, но что-то более сложное было бы пустой тратой времени и, вероятно, не очень читабельным.

1 голос
/ 14 мая 2019

Вы можете попробовать это:

const { inverse } = this.props;

let calc = (x, y) => (x * y) / 100

let offset = arr + (inverse ? -1 : 1)*(calc(arr, this.state.percentProgress))

Таким образом, вы можете извлечь / повторно использовать функцию calc (или перейти к utils и т. Д.), И операция inverse сводится к простому inverse ? -1 : 1 что вы действительно ищете.

...