Renowuję komponent w innym komponencie i wygląda tak:

render() {
    return (

        <MyComponent
            value={this.state.measurement.Value}
            unit="kg"
        />
    );
}

Chcę zmienić jednostkę pomiaru, jeśli wartość wykonuje stan. Na przykład, jeśli value > 1000, urządzenie powinno być tons zamiast kg.

Wiem, że nie można tam dodać, że stwierdzenie, próbowałem to zrobić, ale to nie działa.

render() {
    return (

        <MyComponent
            value={this.state.measurement.Value}
            unit="kg"
            (value > 1000){
                 unit="tons"
            }
        />
    );
}

Czy masz jakies pomysły?

1
Samurai Jack 28 czerwiec 2017, 10:53

7 odpowiedzi

Najlepsza odpowiedź

Spróbuj tego:

render() {
    return (

        <MyComponent
            value={this.state.measurement.Value}
            unit={this.state.measurement.Value > 1000 ? "tons" : "kg"}
        />
    );
}
4
Nisarg 28 czerwiec 2017, 07:55

Tak powinno być

render() {
 return (
    <MyComponent
        value={this.state.measurement.Value}
        unit= {this.state.measurement.Value > 1000 ? "tons" : "kg" }
    />
 );
}
1
Rishabh Mishra 28 czerwiec 2017, 08:03

Użyj poniższego kodu:

render() {
    let measureVal = (this.state.measurement.Value < 1000) ? 'kg' : 'tons';
    return (

        <MyComponent
            value={this.state.measurement.Value}
            unit={measureVal}
        />
    );
}
2
RJParikh 28 czerwiec 2017, 08:12

Możesz mieć zmienną unit przed powrotem:

render() {
  const value = this.state.measurement.Value;
  const unit = value > 1000 ? 'tons' : 'kg';

  return (
    <MyComponent
      value={value}
      unit={unit}
    />
  );
}
2
dork 28 czerwiec 2017, 07:56

Możesz użyć wyrażenia kondycji therary:

render() {
    const Value = this.state.measurement.Value;
    const unit = Value  > 1000 ? "tons" : "kg" 
    return (

        <MyComponent
            value={Value}
            unit={unit}
        />
    );
}
2
Sagiv b.g 28 czerwiec 2017, 07:56

Osobiście lubię to podejście.

render() {
  const value = this.state.measurement.Value
  return (
    <MyComponent
      value={value}
      unit={value > 1000 ? "tons" : "kg"}
    />
  );
}
2
Kris Selbekk 28 czerwiec 2017, 07:55

Możesz użyć torturowego wyrażenia.

unit={ this.state.measurement.Value>1000 ? 'tons' : 'kg' }
3
shawon191 28 czerwiec 2017, 07:55