Dieser Artikel bietet Ihnen eine Einführung in die Methode zum Rendern von Listen in React (mit Code). Ich hoffe, er wird Ihnen als Referenz dienen.
Für eine Anzeigeseite gibt es normalerweise mehrere Anzeigezustände (nehmen Sie die Listenseite als Beispiel):
Daten sind leer, leere Seite
Beim Abrufen der Daten ist ein Fehler aufgetreten, Fehler Seite
Daten sind normal
Ladestatus
Angesichts der oben genannten drei Situationen muss React beim Rendern der Liste die entsprechende Ansicht korrekt beurteilen und rendern, was sich vom bedingten Rendern von vue unterscheidet , v- Die von Frameworks wie show bereitgestellten APIs und das bedingte Rendering von React sind alle native JS mit einem kleinen Hack. Zum Beispiel, wie im React-Dokument erwähnt
if/else, ternäre und Kurzschlussoperatoren
Diese drei Methoden werden in den offiziellen Dokumenten erwähnt und hier zusammengefasst. Tatsächlich sind diese drei Lösungen ähnlich: Treffen Sie entsprechende Urteile Im Render-Lebenszyklus können jedoch Ternär- und Kurzschlussoperatoren in jsx-Zeilen verwendet werden.
if/elseclass List extends Component { static propTypes = { status: PropTypes.oneOf(['loading', 'error', 'success', 'empty']) } render () { const { status } = this.props if (status === 'loading') { return <div> 加载状态 </div> } if (status === 'error') { return <div> 错误状态 </div> } if (status === 'success') { return <div> 成功状态 </div> } if (status === 'empty') { return <div> 空状态 </div> } } }
function Render ({ if: cond, children }) { return cond ? children : null }
class List extends Component { static propTypes = { status: PropTypes.oneOf(['loading', 'error', 'success', 'empty']) } render () { const { status } = this.props return ( <div> <Render if={status === 'loading'} > 加载状态 </Render> <Render if={status === 'error'} > 错误状态 </Render> <Render if={status === 'success'} > 成功状态 </Render> <Render if={status === 'empty'} > 空状态 </Render> </div> ) } }
class List extends Component { static propTypes = { status: PropTypes.oneOf(['loading', 'error', 'success', 'empty']) } render () { const { status } = this.props return ( <div> {(() => { switch (status) { case 'loading': return <div>加载状态</div> case 'error': return <div>错误状态</div> case 'success': return <div>成功状态</div> case 'empty': return <div>空状态</div> } })()} </div> ) } }
const withList = WrappedComponent => { return class PP extends Component { render() { const { status } = this.props switch (status) { case 'loading': return <div>加载状态</div> case 'error': return <div>错误状态</div> case 'success': return <WrappedComponent {...this.props}/> case 'empty': return <div>空状态</div> } } } }
@withList class List extends Component { static propTypes = { status: PropTypes.oneOf(['loading', 'error', 'success', 'empty']) } render () { return ( <div> 成功页面 </div> ) } }
Das obige ist der detaillierte Inhalt vonEinführung in die Methode zum Rendern von Listen in React (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!