我用react But构建了一个摄氏度(作为输入)到华氏度(作为输出)的转换器
我想在摄氏度和华氏度之间切换作为输入和输出
我的意思是,当我点击华氏温度时,它会变成输入,使用它可以编辑一个类型init,然后看到
结果为摄氏度(作为输出),反之亦然
如何在输入和输出之间切换?
import { useState } = React;
function App() {
// Use State
const [celsius_value, set_celsius_value] = useState("");
const [fahrenheit_value, set_fahrenheit_value] = useState("");
// state functions
const celsius_to_fahrenheit_converter = (e) => {
const celsius_value_input = Number(e.target.value);
set_celsius_value(celsius_value_input);
// convert value
set_fahrenheit_value((celsius_value_input * 9) / 5 + 32);
};
const fahrenheit_to_celsius_converter = (e) => {
const fahrenheit_value_input = Number(e.target.value);
set_fahrenheit_value(fahrenheit_value_input);
// Convet value
set_celsius_value(((fahrenheit_value_input - 32) * 5) / 9);
};
return (
<div className="container">
{/* Celsius */}
<div className="celsius-container">
<label htmlFor="celsius-input">celsius</label>
<input
type="number"
name="celsius"
id="celsius-input"
value={celsius_value}
onChange={(e) => {
celsius_to_fahrenheit_converter(e);
}}
/>
</div>
{/* fahrenheit */}
<div className="fahrenheit -container">
<label htmlFor="fahrenheit -input">fahrenheit </label>
<input
type="number"
name="fahrenheit "
id="fahrenheit-input"
value={fahrenheit_value}
onChange={(e) => {
fahrenheit_to_celsius_converter(e);
}}
/>
</div>
</div>
);
}
ReactDOM.render(<App />, document.getElementById("root"));
.container{
border:1px solid green;
width:30%;
height:30vh;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
}
.container div{
display: flex;
flex-direction: column;
}
label{
font-size:20px;
text-transform: uppercase;
font-family: monospace;
}
#celsius-input,#fahrenheit-input{
padding:10px 20px;
text-align: center;
outline:none;
}
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<div id="root"></div>