Próbuję użyć tej wtyczki w moim projekcie https://github.com/rt2zz/react-native-drawer. Mógłbym poprawnie uruchomić ten przykład, ale mając problem z jego integracją.ten szablon jest niezdefiniowany w metodzie
Dostaję błąd w metodzie openDrawer. "Nie można odczytać szuflady właściwości nieokreślonej"
Zgaduję, że nie definiuję i nie używam klasy w prawidłowy sposób, tak jak powinno być (jestem nowy w javascript OOP), ponieważ w przykładzie używam React.createClass({
w przeciwieństwie do mojego jako rozszerzenie komponentu i mieć konstruktora.
Ważne kody z mojej klasy są następujące.
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 są
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>
Bardzo dziękuję za szczegółowe wyjaśnienie tego, czego mi brakowało. Na wypadek, gdyby ktoś (w przyszłości) chciał szybko naprawić, poniżej znajduje się jeden kod liniowy, który należy wstawić do konstruktora. 'this.openDrawer = this.openDrawer.bind (this)' – cjmling
Dziękuję @cjmling, twoja szybka naprawa działa jak urok – david72