【发布时间】:2019-03-07 20:19:28
【问题描述】:
如果我有一个类似于下面的组件:
import React, { useState } from "react";
import ReactDOM from "react-dom";
function calculateNewValueAndMaybeError(test) {
try {
// do something with test that might error
// const newTest = functionThatMightError(...)
// if it doesn't error, return { value: newTest, error: '' }
} catch (err) {
// is it correct to now return this in case of error?
// return { value: test.value, error: 'Something went wrong' }
}
}
function App() {
const [test, setTest] = useState({ value: "", error: "" });
return (
<div>
<p>Test: {test.value}</p>
<p>Error: {test.error}</p>
<button onClick={() => setTest(calculateNewValueAndMaybeError(test))}>
Click me
</button>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
我有一个按钮可以改变我的变量的状态,称为test,有没有办法处理错误,而不必一直在内部传递值和错误的对象?
否则,这不会导致有时像下面这样的必要代码:
onChange={() => setTest({ value: e.target.value, error: test.error })}
您想要更新test.value 的值但保留test.error 的值。
我觉得我缺少一些明显的东西。
谢谢!
【问题讨论】:
标签: javascript reactjs react-hooks