Я пытаюсь использовать этот плагин в своем проекте https://github.com/rt2zz/react-native-drawer. Я мог бы запустить пример правильно, но проблема с его интеграцией.этот refs становится неопределенным в методе
Я получаю ошибку в методе openDrawer. «Не удается прочитать ящик свойств неопределенного»
Я предполагаю, что я не определяю и не использую класс правильно, как должно быть (я новичок в javascript OOP), как в примере, он использует React.createClass({
, в отличие от моего как расширяющий компонент и имеющий конструктор.
Релевантные коды моего класса следующие.
class Search extends Component {
constructor(props) {
super(props);
this.state = {
isLoading: true,
dataSource: new ListView.DataSource({
rowHasChanged: (row1, row2) => row1 !== row2
})
};
}
openDrawer(){
this.refs.drawer.open()
}
getInitialState(){
return {
drawerType: 'overlay',
}
}
Рендер являются
render() {
if (this.state.isLoading) {
return this.renderLoadingView();
}
var controlPanel = <MyControlPanel closeDrawer={() => {this.refs.drawer.close()}} />
return (
<View>
<View style={styles.topBar}>
<Drawer
ref="drawer"
>
<MyMainView
/>
</Drawer>
<Text style={styles.topBarMenu}>☰</Text>
<Text style={styles.topBarTitle}>เงินปันผล</Text>
<Text style={styles.topBarRight}></Text>
</View>
Большое спасибо за подробное объяснение того, чего я не понял, чтобы понять. На всякий случай, если кто-то (будущий) хочет быстро исправить, ниже приведен код одной строки, который нужно добавить в конструктор. 'this.openDrawer = this.openDrawer.bind (this)' – cjmling
Спасибо @cjmling, ваше быстрое исправление работает как шарм – david72