React is an easy to use framework for building front end apps.
NativeScript is a mobile app framework that lets us build native mobile apps with popular front end frameworks.
In this article, we’ll look at how to build an app with NativeScript React.
NavigationButton
We can add a navigationButton
component to the actionBar
to add a button into the top bar.
For example, we can write:
import * as React from "react";
export default function Greeting({ }) {
return (
<frame>
<page>
<actionBar title="My App">
<navigationButton
nodeRole="navigationButton"
text="Go back"
android={{
position: undefined,
systemIcon: "ic_menu_back"
}}
onTap={() => { }}
/>
</actionBar>
<flexboxLayout justifyContent='center' >
</flexboxLayout>
</page>
</frame>
);
}
to add the button.
We add the onTap
prop to add a function to run when we tap on the button.
Page
The page
component lets us add an app screen into our app.
To use it, we can write:
import * as React from "react";
export default function Greeting({ }) {
return (
<frame>
<page>
<actionBar title="My App">
</actionBar>
<flexboxLayout justifyContent='center' >
</flexboxLayout>
</page>
</frame>
);
}
We can set various props like stratus bar style, background under the status bar, and more.
Progress
The progress
component lets us show a bar to indicate the progress of a task
For example, we can write:
import * as React from "react";
export default function Greeting({ }) {
return (
<frame>
<page>
<actionBar title="My App">
</actionBar>
<flexboxLayout justifyContent='center' >
<progress value={50} maxValue={100} />
</flexboxLayout>
</page>
</frame>
);
}
to add a progress bar into our app.
ScrollView
A scrollView
component lets us show a scrollable content area.
Content can be scrolled vertically or horizontally.
For example, we can write:
import * as React from "react";
export default function Greeting({ }) {
return (
<frame>
<page>
<actionBar title="My App">
</actionBar>
<flexboxLayout justifyContent='center' >
<scrollView orientation="horizontal">
<stackLayout orientation="horizontal">
{Array(100)
.fill(undefined)
.map((_, i) => <label
key={i}
text={i.toString()}
style={{ width: 30 }}
/>)
}
</stackLayout>
</scrollView>
</flexboxLayout>
</page>
</frame>
);
}
to render an array of numbers and make the scroll view and stack layout scrollable horizontally with the orientation
prop set to horizontal
.
SearchBar
We can use the searchBar
component to add a search bar into our app.
For example, we can write:
import { Dialogs } from "@nativescript/core";
import * as React from "react";
export default function Greeting({ }) {
const [value, setValue] = React.useState()
return (
<frame>
<page>
<actionBar title="My App">
</actionBar>
<flexboxLayout justifyContent='center' >
<searchBar
hint="Search hint"
text="searchPhrase"
onTextChange={({ value }) => setValue(value)}
onSubmit={() => Dialogs.alert(value)}
onClose={() => console.log('close')}
/>
</flexboxLayout>
</page>
</frame>
);
}
We add the searchBar
component with the hint
prop to add a placeholder into the search box.
text
has the default value of the text that we enter into the search box.
onTextChange
has a function that’s called when we enter something into the box.
We can get what we enter with the value
property from the parameter.
onSubmit
is called when we press Enter.
onClose
is called when we tap the close button.
Conclusion
We can add navigation buttons, progress bar, scroll view, and search bar into our React NativeScript app.