React Native · Mobile UI at native speed

How do props and state work in a React Native component?

EasypropsstatereactUpdated Oct 2026
Quiz this track

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.

tsx
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>
  );
}
The functional update avoids stale state when presses happen quickly.

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.

Mutating an object and calling setState with the same reference does not trigger a re-render, because React compares references. Always create a new object or array.

Follow-ups you should expect

Interviewers use these to check whether the first answer was understanding or memorisation.

  1. 1Why does mutating state not trigger a re-render?
  2. 2When should state be lifted?
  3. 3What does a key change do to component state?
  4. 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.