React-native-router-flux: Hapus tombol kembali dari navbar

Dibuat pada 30 Des 2016  ·  17Komentar  ·  Sumber: aksonov/react-native-router-flux

Saya sudah mencoba banyak hal untuk menghapus panah kiri di bilah navigasi aplikasi saya. Saya memiliki adegan dengan tab, jadi saya tidak memerlukannya.
Tangkapan layar di sini

Ini adalah kode saya yang sebenarnya:

const scenes = Actions.create(
    <Scene key="root">
        <Scene key="login" component={LoginComponent} title="Login" initial={true} hideNavBar={true}/>
        <Scene key="tabbar" tabs={true}>
            <Scene key="feed" component={FeedComponent} title="Live orders" icon={TabIcon} initial={true}/>
            <Scene key="orders" component={OrdersComponent} title="My orders" icon={TabIcon} />
            <Scene key="wallet" component={WalletComponent} title="Wallet" icon={TabIcon} />
            <Scene key="profile" component={ProfileComponent} title="Profile" icon={TabIcon} />
        </Scene>
    </Scene>
);

export default class App extends Component {
    render() {
        return (
            <Provider store={store}>
                <RouterWithRedux scenes={scenes} />
            </Provider>
        );
    }
}

Bantuan apa pun akan sangat dihargai!
Terima kasih!

Komentar yang paling membantu

@ddolheguy Terima kasih atas jawaban cepat Anda.
Akhirnya berhasil menambahkan:
renderBackButton={()=>(null)}

Saya menutup masalah sekarang

Semua 17 komentar

Anda perlu mengganti "renderBackButton" di Scene dengan fungsi yang mengembalikan tombol kembali. CATATAN: Bergantung pada situasi Anda, Anda mungkin perlu mengganti "renderLeftButton" alih-alih tombol kembali dengan fungsi yang sama.

const renderBackButton = () => {
    return (
        <TouchableOpacity
            onPress={() => {}}>
            <View style={{ flexDirection: 'row', alignItems: 'center' }}>
                <Image
                    source={require('../assets/images/icons/[email protected]')}
                    resizeMode={'contain'}/>
                <Text>Back</Text>
            </View>
        </TouchableOpacity>
    );
};

                <Scene
                    key="editExpense"
                    renderBackButton={() => renderBackButton()}
                    component={EditExpenses} title="My View" />

@ddolheguy Terima kasih atas jawaban cepat Anda.
Akhirnya berhasil menambahkan:
renderBackButton={()=>(null)}

Saya menutup masalah sekarang

@ddolheguy Terima kasih. Itu berhasil untuk saya.

Tidak berfungsi

@jobiwankanobi dapatkah Anda memberikan lebih banyak konteks? masalah ini berumur 8 bulan+ - mungkin dalam versi yang Anda coba mungkin telah berubah.

Sudahlah - saya mengalami kesulitan tidak menunjukkan panah kiri belakang. Saya menemukan jika saya melakukan hideNavBar pada komponen root, fungsionalitasnya berfungsi seperti yang saya inginkan.

Hai

Saya mencoba melakukan ini, tetapi sayangnya tombol kembali masih muncul.
4.0.0-beta.24

<Router> <Scene key="root"> <Scene key="login" component={LoginForm} title="Please Log in" /> <Scene key="employeeList" component={EmployeeList} title="Employees" renderBackButton={()=>(null)} renderLeftButton={()=>(null)} /> </Scene> </Router>

@krean93 Coba tambahkan tabs ke root scene Anda, dan jangan lupa tentang hideTabBar .

<Router>
  <Scene key="root" tabs>
    <Scene key="login" component={LoginForm} title="Please Log in" hideTabBar />
    <Scene key="employeeList" component={EmployeeList} title="Employees" hideTabBar />
  </Scene>
</Router>

Nanti Anda dapat membuat sarang adegan Anda, sehingga employeeList dapat mengarah ke layar satu karyawan:

<Router>
  <Scene key="root" tabs>
    <Scene key="login" component={LoginForm} title="Please Log in" hideTabBar />
    <Scene key="employees">
      <Scene key="employeeList" component={EmployeeList} title="Employees" hideTabBar />
      <Scene key="employee" component={Employee} hideTabBar />
    </Scene>
  </Scene>
</Router>

Ini bekerja untuk saya dengan 4.0.0-beta.24 : https://github.com/aksonov/react-native-router-flux/issues/2006#issuecomment -322423598

@pistonsky Terima kasih!!!
Hanya perlu diingat bahwa ketika Anda menggunakan panggilan untuk Tindakan dari react-native-router-flux, Anda perlu memanggilnya ke karyawan.
Itu bekerja dengan sempurna :)

Untuk menyembunyikan tombol kembali pada adegan awal saya, saya cukup menambahkan prop 'renderLeftButton', melewati View kosong.

Lihat di bawah untuk beberapa kode contoh yang tidak lengkap.

import { View } from "react-native";
....
...
<Scene initial={true} renderLeftButton={<View></View>}   key="timeline" component={Timeline}   />

Bagi mereka yang ingin menyembunyikan label teks tombol kembali , lihat https://github.com/aksonov/react-native-router-flux/issues/2219
Menyetel backTitle=" " prop (spasi dalam _quotes_; BUKAN string kosong) berhasil

capture

@ddolheguy Terima kasih atas jawaban cepat Anda.
Akhirnya berhasil menambahkan:
renderBackButton={()=>(null)}

Saya menutup masalah sekarang

dan bagaimana cara menonaktifkan swipe back?

@pistonsky

Anda perlu mengganti "renderBackButton" di Scene dengan fungsi yang mengembalikan tombol kembali. CATATAN: Bergantung pada situasi Anda, Anda mungkin perlu mengganti "renderLeftButton" alih-alih tombol kembali dengan fungsi yang sama.

Terima kasih atas informasi ini. Menggunakan renderLeftButton berhasil untuk saya. Hanya ingin tahu apa perbedaan menggunakan renderLeftButton vs. renderBackButton ? Saya mencoba renderBackButton (dengan {() => null} dan ternyata hanya menghapus teks tombol kembali, tetapi bukan ikonnya.

left={() => null} berfungsi

Seseorang mengatakannya, tapi sekali lagi. hideNavBar inilah yang Anda inginkan jika Anda tidak menginginkan navigasi teratas. renderBackButton={()=>null} dan hideTabBar tidak berfungsi, gunakan hideNavBar.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat