React Native · Mobile UI at native speed
How do props and state work in a React Native component?
Short answer
Props are read-only inputs passed by a parent; state is data a component owns and changes over time. Updating either triggers a re-render of that component and its children as needed.
The React model is identical to the web. A parent passes props down, and a component renders based on those props plus its own state. State updates are asynchronous and batched, so you compute the next value from the previous one with a functional update when it depends on the old value.
import { useState } from "react";
import { Pressable, Text, View } from "react-native";
function Counter({ step }: { step: number }) {
const [count, setCount] = useState(0);
return (
<View>
<Text>{count}</Text>
<Pressable onPress={() => setCount((current) => current + step)}>
<Text>Add {step}</Text>
</Pressable>
</View>
);
}Rules that keep data flow clear
- Never mutate props or state objects in place
- Keep state minimal and derive the rest during render
- Lift state to the closest common parent when siblings must agree
- Use a key to reset a component's state intentionally
- Prefer controlled inputs when validation and formatting depend on the value
A frequent mobile bug is storing derived data, such as a filtered list, in state and forgetting to update it when the source changes. Compute it with useMemo during render instead, unless the computation is genuinely expensive and the inputs are stable.
Follow-ups you should expect
Interviewers use these to check whether the first answer was understanding or memorisation.
- 1Why does mutating state not trigger a re-render?
- 2When should state be lifted?
- 3What does a key change do to component state?
- 4How do you avoid stale state in async callbacks?
Say it in the interview
Props are inputs from a parent and state is data the component owns. I keep state minimal, never mutate it, and use functional updates when the next value depends on the previous one. If two siblings need to agree, I lift the state to their closest common parent. That keeps the data flow predictable and avoids duplicated derived state that drifts out of sync.
Use this as a model, not a script. Saying it in your own words is what makes it survive follow-up pressure.
Related questions
Reading is step one
Now say it out loud.
Understanding an answer and delivering it under pressure are different skills. Rehearse this topic in a live React Native mock interview and get scored feedback on depth, clarity and confidence.