2017-09-08 2 views
-1

Ich muß das von einer funktionalen Komponente zu einer Klasse Komponente konvertieren, damit ich die Vorteile der componentDidMount Methode des React.Component nehmen.Facing Problem in der Komponente zur Klasse Reagieren Funktionskomponente Umwandlung

const receivedStyle = { 
    marginRight: '0', 
    marginLeft: 'auto', 
}; 
const receivedBubble = { 
    backgroundColor: '#709AFF', 
    color: 'white', 
}; 
const receivedDate = { 
    marginRight: '0', 
    marginLeft: 'auto', 
}; 

const MessageBubble = ({ message, received }) => (
    <div className="message-bubble" style={received ? receivedStyle : null}> 
    <div className="bubble" style={received ? receivedBubble: null}> 
     {message.message} 
    </div> 
    <span className="date" style={received ? receivedDate: null}>{Moment(message.timestamp).startOf('minute').fromNow()}</span> 
    </div> 
); 

export default MessageBubble; 
+1

Was ist das Problem? Setze einfach den ui part in die render-Methode und benutze 'this.props', um auf die Props-Werte zuzugreifen. Überprüfen Sie das Dokument für [** Wie Funktionskomponente in Klassenkomponente ** konvertieren] (https://facebook.github.io/react/docs/components-and-props.html#functional-and-class-components) –

Antwort

0

Ich verstehe nicht, was das Problem ist. Wie auch immer, hier geht es:

import React, { Component } from 'react' 

const receivedStyle = { 
    marginRight: '0', 
    marginLeft: 'auto', 
} 

const receivedBubble = { 
    backgroundColor: '#709AFF', 
    color: 'white', 
} 

const receivedDate = { 
    marginRight: '0', 
    marginLeft: 'auto', 
} 

export default class MessageBubble extends Component { 
    componentDidMount() { 
    ... 
    } 

    render() { 
    const { message, received } = this.props 

    return (
     <div className="message-bubble" style={received ? receivedStyle : null}> 
     <div className="bubble" style={received ? receivedBubble: null}> 
      {message.message} 
     </div> 
     <span 
      className="date" 
      style={received ? receivedDate: null} 
     > 
      {Moment(message.timestamp).startOf('minute').fromNow()} 
     </span> 
     </div> 
    ) 
    } 
} 
+2

Es ist nicht einmal so einfach, Sie haben das Schlüsselwort "class" vergessen und vergessen zu erwähnen, wie Sie Component importieren. –

+0

Sie haben es :) – mersocarlin

+0

wo soll ich den Code für receivedStyle, receivedBubble und receivedDate schreiben? –

Verwandte Themen