Beri tahu kami versi mana yang Anda gunakan:
Actions.refresh() menyegarkan adegan saat ini.
Jika pendekatan saya salah, atau Actions.refresh memiliki beberapa persyaratan, berikan saya informasinya
const ConnectRouter = connect()(Router);
const Routes = () => (
<ConnectRouter>
<Scene key="root">
<Scene key="launchScreen" component={LoadingFull} hideNavBar />
<Scene key="login" component={LoginForm} hideNavBar type={ActionConst.RESET} />
<Scene key="lostPassword" component={LostPasswordForm} hideNavBar />
<Scene key="dashboard" component={Dashboard} hideNavBar type={ActionConst.RESET} />
<Scene key="search" component={SearchResult} hideNavBar />
</Scene>
</ConnectRouter>
);
Ketika saya berada di adegan pencarian (komponen biasa dengan status), saya mencoba untuk menyegarkan adegan dengan menggunakan Actions.refresh. Tapi entah kenapa itu tidak berhasil sama sekali.
+1
saya ingin menggunakan renderBackButton dari adegan. kode contoh saya,
public componentWillMount (): void {
Actions.refresh({
renderBackButton: this.renderBackButton.bind(this),
onRight: this.onRightButtonPress.bind(this)
});
}
Ini tidak bekerja. Saya pikir itu masalah yang sama.
Coba leftButton
alih-alih renderBackButton
dan berikan Komponen ke sana.
@kesha-antonov Tidak berfungsi. Saya membuat masalah baru untuk ini.
Ini bekerja untuk saya. rnrf-4-beta22
leftButton
untuk ikon kiri
right
untuk ikon kanan
komponen publikWillMount (): void {
this.props.navigation.setParams({
kanan: () => {this.myOnRight();},
rightTitle:'Judul baru',
});
}
Ini bekerja untuk saya.
Yesus, saya datang ke sini mencari jawaban untuk masalah aslinya.
Tolong, cobalah untuk tidak membonceng masalah yang tidak terkait!
Saya mengalami masalah yang sama TAPI saat memperbarui toko (mobx)
<strong i="7">@observer</strong>
class Custom extends Component {
render() {
// prints every time I update state, this's ok!
console.log('update', store.session.get('logged'))
return (
<Router>
<Scene key="root">
<Scene key="login"
component={login}
type="replace"
onEnter={() => {
// ONLY enter here once
console.log('onEnter');
return store.session.get('logged')
}}
success="recents"
/>
<Scene key="recents" component={recents} />
</Scene>
</Router>
)
}
}
Saya mencoba memicu panggilan 're-render' Actions.refresh()
setelah pembaruan toko, tetapi onEnter
tidak merespons.
_onPressButton() {
store.session.set('logged', !store.session.get('logged')) // invert the value in store
Actions.refresh() // tested with { key: 'login' } too
}
@aksonov Bisakah Anda mengarahkan kami ke arah yang benar? :berdoa:
Hai
Saya memiliki masalah yang sama ... Ketika saya mencoba menyegarkan dengan Actions.refresh() tidak ada yang terjadi
import React, { Component } from 'react';
import {
View,
Text,
Button,
} from 'react-native';
import { Actions } from 'react-native-router-flux';
export default class Types extends Component {
constructor(props) {
super(props);
console.log("Constructor Types")
}
componentWillMount() {
console.log('Will mount Types')
}
componentWillUpdate() {
console.log("Will Update Types")
}
componentWillUnmount() {
console.log("will Unmont Types")
}
render() {
console.log("render Types")
return (
<Button title='refresh' onPress={() => Actions.refresh()}/>
)
}
}
masalah yang sama di sini, saya menggunakan redux dan ketika saya mencoba menyegarkan tombol kanan itu tidak diperbarui.
Harap mereproduksi masalah dengan proyek Contoh.
Actions.refresh({ key: Actions.currentScene });
tidak berfungsi untuk kedua kalinya
https://github.com/aksonov/react-native-router-flux/issues/2862
@aksonov
@jaysassyinfotech
Actions.refresh({ kunci: Actions.currentScene }); tidak bekerja kedua kalinya
Ini berfungsi jika Anda melakukan seperti ini :)
Actions.refresh({key: Math.random()})
@cosinus84 Anda adalah penyelamat.
@cosinus84 Ini benar-benar berfungsi. Wow
Tetapi apakah ada penjelasan mengapa Math.random() melakukan semua trik?
@cosinus84 kamu keren (y)
Semoga acak tidak diperlukan untuk versi terbaru sekarang
@aksonov Tolong bisakah Anda membuat daftar props (dengan fungsinya ) yang dapat kita gunakan di Actions.refresh() karena props Scene sepertinya tidak berfungsi di sini.
Anda dapat memeriksa aplikasi Contoh dan panggilan penyegarannya - ini berfungsi dengan baik di sana dengan 4.0.5 terbaru. Jangan ragu untuk mengkloning dan memodifikasi contoh yang sesuai untuk menunjukkan masalahnya.
Ya, ini berfungsi dengan baik tetapi saya menyarankan Anda untuk membuat daftar alat peraga yang akan digunakan dengan panggilan penyegaran karena kami mungkin tidak tahu yang mana yang akan digunakan kapan.
Misalnya untuk merender tombol kembali kita perlu menggunakan leftButton
prop tapi saya tidak tahu itu sampai saya membaca komentar @kesha-antonov
bekerja
@preetluv keberatan memberi tahu saya bagaimana Anda memperbaikinya?
@preetluv lihat jawaban cosinus84
Anda dapat melakukan hal berikut: -
tindakan.pop()
setTimeout(()=> Actions.refresh({"somePropToRefresh":Math.random(),"yourProp":"untuk menyegarkan
layar sebelumnya saat kembali"}),0.5);
Anda dapat memeriksa "yourProp" di componentWillReceiveProps di layar sebelumnya setelah melakukan kembali.
Saya menggunakan react-native-router-flux 4.2.0-beta.2
dan bekerja dengan setTimeout
Komentar yang paling membantu
@jaysassyinfotech
Actions.refresh({ kunci: Actions.currentScene }); tidak bekerja kedua kalinya
Ini berfungsi jika Anda melakukan seperti ini :)
Actions.refresh({key: Math.random()})