Как перерендерить вложенный компонент, если вложенный компонент имеет свой стейт?

Рейтинг: -1Ответов: 1Опубликовано: 05.04.2023

Пример максимально упростил, натолкните хотя бы на мысль как менять стейт внутри Counter из Testing, хуки или map + Counter в отдельную функцию? Уже много перепробовал.

App.tsx:

import Testing from './Testing';
function App() {
  return (
    <Testing/>
  )
}

Testing.tsx

import Counter from './Counter';
const Testing = () => {
  const dataArr = [{...},{...},{...}]
  
  const [data, setData] = useState(dataArr);
    return (
        {data.map((item) => {
          return (
            <Counter //как перерендерить этот компонент?
              //пропсы
              value: number;
            />
        }
  )
}

Counter.tsx

const Counter = ({ value }) => {
  const [count, setCount] = useState(value);
  return (
      <div>
        <button onClick={decrement}>[  -  ]</button>
        <h6 >{count}</h6>
        <button onClick={increment}>[  +  ]</button>
      </div>
  );
}

Ответы

▲ 0Принят

Помог хук useEffect и такая функция в компоненте Counter

function reset(){
 setCount (count => count = value)
}

useEffect(()=> reset(),[value])