What are the basic components of NativeBase?
NativeBase comes in handy when looking for an open-source UI library for your React Native apps. It has a good number of basic components that make developing React Native apps easier and faster.
These components can be categorized into
Components
Box
Box, similar to the HTML div, is used for low-level layout needs.
Importing Box into a component
import { Box } from 'native-base';
Usage
<Box
bg="primary.100"
p={2}
_text={{
fontSize: "md",
fontWeight: "bold",
color: "white",
}}
>
Educative is great
</Box>
Button
Button is used to trigger actions on the screen, like navigating to a new page.
Importing Button into a component
import { Button } from 'native-base';
Usage
<Button
onPress={() =>
console.log("You pressed me")}
>
Bottom
</Button>
Input
Input is a text field used for getting user input. It is mostly used in forms to get user input that can later be sent to a server.
Importing Input into a component
import { Input } from 'native-base';
Usage
<Input
w="100%"
placeholder="Enter your name"
mx={1}
_light={{
placeholderTextColor: "red.400",
}}
_dark={{
placeholderTextColor: "red.50",
}}
/>
Alert
Alerts are used to show customized messages in the app.
Importing Alert into a component
import { Alert } from 'native-base';
Usage
<Alert status="warning" w="100%">
<Alert.Icon />
<Alert.Title>
{`Educative rocks`}
</Alert.Title>
</Alert>
Select
Select is also used for collecting user input. However, it appears in a dropdown form.
Importing Select into a component
import { Select } from 'native-base';
Usage
<Select
minWidth={200}
accessibilityLabel="Select your favorite comic"
placeholder="Select your favorite comic"
onValueChange={(itemValue) => setLanguage(itemValue)}
_selectedItem={{
bg: "cyan.600"
}}
>
<Select.Item label="JavaScript" value="js" />
<Select.Item label="Dc Comics" value="dc" />
<Select.Item label="Marvel" value="mv" />
</Select>
Spinner
Spinner can be used to display a loading effect.
Importing Spinner into a component
import { Spinner } from 'native-base';
Usage
<Spinner accessibilityLabel="Loading posts" />
Toast
Toast can be used to show alerts on top of an overlay. It is usually used to give feedback to a user after an action has taken place. Its default timeout is 5 seconds.
Like other components, it can be customized. Its location on the screen is flexible.
Importing Toast into a component
import { useToast } from 'native-base';
Usage
<Button
onPress={() =>
toast.show({
title: "Welcome Back, John Doe!",
})
}
>
Bottom
</Button>
Modal
Modal shows content in a window overlay. Any content behind a modal can’t be accessed by the user until the modal is closed.
Importing Modal into a component
import { Modal } from 'native-base';
Usage
<Modal>
<Modal.Content>
<Modal.CloseButton />
<Modal.Header>Educative</Modal.Header>
<Modal.Body>
Learn with us, and take your career to another level.
</Modal.Body>
<Modal.Footer>
<Button.Group>
<Button>
Start Now
</Button>
<Button>
Close
</Button>
</Button.Group>
</Modal.Footer>
</Modal.Content>
</Modal>
Tooltip
Tooltip is an informative message that appears when a user interacts with an element. This interaction can be initiated through either a keyboard-hover or a mouse-hover gesture.
Importing Tooltip into a component
import { Tooltip } from 'native-base';
Usage
<Tooltip label="Hey, Welcome to Educative!" openDelay={300}>
<Button>Show</Button>
</Tooltip>
ActionSheet
Action Sheet is used to display a set of options in a dialog. It appears over the app’s content.
Importing ActionSheet into a component
import { Actionsheet } from 'native-base';
Usage
<Actionsheet>
<Actionsheet.Content>
<Actionsheet.Item>
More
</Actionsheet.Item>
<Actionsheet.Item>
Accept
</Actionsheet.Item>
<Actionsheet.Item>
Reject
</Actionsheet.Item>
</Actionsheet.Content>
</Actionsheet>