I am trying to build a website to convert recipes to a different number of servings. I am using React. I have setup a component to take the number of original servings, new number of servings, and number of ingredients. It will not update in the App.js file when I change the value in the PreInputs component.
App.js:
const App = () => {
//define variables using states
const [numIngredients, setNumIngredients] = useState(5);
const [originalServings, setOriginalServings] = useState(8);
const [newServings, setNewServings] = useState(4);
//create handling functions for the variables
const handleNumIngredients = (num) => {
setNumIngredients(num);
}
const handleOriginalServings = (num) => {
setOriginalServings(num)
}
const handleNewServings = (num) => {
setNewServings(num);
}
return (
<div>
<Header title="test"/>
<PreInputs changeNumIngredients={handleNumIngredients} changeOriginalServings={handleOriginalServings} changeNewServings={handleNewServings}/>
<h1>{originalServings}</h1>
</div>
);
}
ReactDOM.render(<App />, document.getElementById('root'))
PreInputs.js:
import React, { useCallback, useState } from 'react';
export const PreInputs = (props) => {
const numOriginalServings = useState(0)
const handleOriginalServingsChange = (e) => {
const originalServings = e.target.value;
props.changeOriginalServings(originalServings)
}
return (
<div className='pre-inputs'>
<form>
<label>Original Servings: </label>
<input value={numOriginalServings} onChange={handleOriginalServingsChange} type='number' />
<button></button>
</form>
<h1>Placeholder</h1>
</div>
);
}