2017-01-12 2 views
0

я следующие функциональные возможности в React родного приложенияПреобразование const в класс в React Native?

const GreenWood = ({x,y,z,f1,f2, f3}) => { 
    ... 
} 

Мне нужно, чтобы преобразовать его в класс

class GreenWood extends Component { 
    constructor(props) { 
     super(props); 
    } 
    ... 
} 

Но мой реквизит х, у, й не определены. Как продвигать их?

+0

Могу ли я советую читать следующий [руководство] (https://facebook.github.io/react/docs/components-and-props.html), и [это возможно связанный с этим вопрос] (HTTP://stackoverflow.com/questions/38202572/understanding-react-redux-and-mapstatetoprops) и глядя в mapDispatchToProps? – Hodrobond

+0

Ну, я читал это руководство, он описывает «функциональный» способ, с которого я пытаюсь перейти, но не тот, который мне нужен. Кроме того, я не использую Redux, просто создаю компонент и хочу перенаправить некоторые реквизиты. На других языках это обычно делается в конструкторах. – Sigrlami

ответ

3

Я предполагаю, что у вас есть функциональный компонент GreenWood, который возвращает некоторый JSX.

class Greenwood extends React.Component { 
    constructor(props) { 
    super(props) 
    //...whatever construction you need 
    } 
    render() { 
    const { x, y, z, f1, f2, f3 } = this.props 
    return // your JSX Here 
    } 
} 
+0

Да, делает ui – Sigrlami

0

Я не думаю, что вы можете разрушить реквизит на занятиях. Вы должны добавить this.props перед всеми этими переменными, или внутри метода вы используете это сделать:

var { x, y, z, f1, f2, f3 } = this.props

или просто поставить те, которые вы используете внутри этого метода.

+0

Могу ли я сделать это после супер в конструкторе? Я попытался сделать это. X = props.x; но без успеха – Sigrlami

+0

Вы можете сделать this.x = this.props.x, так как вы преобразовали в класс, вам нужно поставить «это» перед реквизитами. –

Смежные вопросы