Как правильно передавать инициализирующее значение в дочерний компонент (в котором есть input) из родителя?
Хочу, чтобы при изменении стейта родителя перерисовывался дочерний элемент, который зависит от этого стейта с новыми данными.
import React, { useState } from "react";
interface MyProps {
placholder?: string;
value?: string;
}
const MyInput = (props: MyProps) => {
const [value, setValue] = useState("");
const handleOnChange = (e: React.ChangeEvent<HTMLInputElement>) => {
setValue(e.target.value);
};
return (
<input
type="text"
placeholder={props.placholder}
value={value}
onChange={handleOnChange}
/>
);
};
export default function App() {
const [inputData, setInputData] = useState<MyProps>({
placholder: "Init Placeholder...",
value: "just a value..."
});
const handleOnClick = () => {
let changed = { ...inputData };
changed.placholder = "Changed ".concat(`${Math.random()}`);
changed.value = "It's not working...".concat(`${Math.random()}`);
setInputData(changed);
};
return (
<div className="App">
<h1>How to do...</h1>
<MyInput {...inputData} />
<button onClick={handleOnClick}>Pass value from props through!!!</button>
</div>
);
}