(Ich verwende JSX mit ES6 Syntax)Mit Requisiten in React style-Attribut
Dies funktioniert:
render() {
return (
<div style={{ width: '95%' }}></div>
)
}
Dies funktioniert nicht: (warum nicht?) Edit: Es tatsächlich funktioniert
render() {
return (
<div style={{ width: this.props.progress + '%' }}></div>
)
}
Edit:
Es funktioniert, aber der Style-Wert muss ein gültiger Wert sein, andernfalls wird der Fehler zurückgegeben.
Ich verwende den Status, um das Stilobjekt zu erstellen und die Eigenschaft mit einem regulären Ausdruck im Konstruktor zu bereinigen, damit es aufgrund ungültiger Werte nicht erneut fehlerhaft wird. Hier ist meine Lösung:
import React, { Component, PropTypes } from 'react'
export default class ProgressBar extends Component {
constructor(props) {
super(props)
let progress = +props.progress.replace(/[^0-9]/g, '') || 50
this.state = {
style: {
width: progress + '%'
}
}
}
render() {
return (
...
<div className="progress-bar" role="progressbar" aria-valuenow={ this.state.progress } style={ this.state.style }></div>
...
)
}
}
ProgressBar.propTypes = {
progress: PropTypes.string.isRequired
}
Hängt davon ab, was der Wert von 'this.props.progress' ist. –
@JoeClay es spielt keine Rolle, egal ob String oder Zahl, Sie erhalten '95%'. Ihr Beispiel funktioniert für mich –
@TheReason: Ja, ich frage mich nur, ob er "undefined" oder so etwas bekommt. –