передать возвращаемое значение метода в функцию возврата - PullRequest
0 голосов
/ 05 сентября 2018

Я хочу передать значение (high) метода внутри функции return(), учитывая приведенный ниже код.

renderElement() {
    var high = 0;

    if ( this.state.trends_1[0].start[1] > this.state.trends_1[0].end[1]) {
      high = this.state.trends_1[0].start[1];
    } else {
      high = this.state.trends_1[0].end[1];
    }
    console.log('High: ', high);
    return high;
}

Я пытался вызвать его, но он просто отображает результат в моем console.log.

render() {
  return (
    <Chart id={1} yExtents={[this.renderElement(), 100]} //also tried `this.renderElement`
  );
}

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018
*

Попробуйте * 1001

render() {
  const [{ start, end }] = this.state.trends_1;

  return (
    <Chart yExtends={[Math.max(start[1], end[1]), 100]} />
  );
}

теперь вам не нужно беспокоиться о вызове другого метода в вашем рендере. Если это не сработает, вам нужно проверить, действительно ли start и end расположены в массиве, где вы предполагаете, что они есть. Они также могут быть NaN или что-то еще, проверьте это также.

0 голосов
/ 05 сентября 2018

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

    render() {
      let {trends_1} = this.state
      let high = (trends_1[0].start[1] > trends_1[0].end[1]) 
                 ? trends_1[0].start[1] 
                 : trends_1[0].end[1];
      return(
        ...
        <Chart id={1}
            yExtents={[high, 100]} 
            ...
      );
}

// Find the max of values
let trends = [ 
  { start: 3, end: 2 }, 
  { start: 5, end: 1 } 
]

trendValues= [];
trends.map((trend)=> 
  Object.values(trend).map((value)=> 
    trendValues.push(value)
  )
)
console.log("trendValues", trendValues);
let high = Math.max(...trendValues);
console.log("MAX:", high);

// Another Alternative 

function findMax(trends){
  let trendValues= [];
  trends.map((trend)=> trendValues = [...trendValues, ...Object.values(trend)])
  let high2 = Math.max(...trendValues);
  console.log("High2", high2);
}

findMax(trends);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...