我正在使用react-final-form。
void testfun(char **argc) {
OpenSSL_add_all_algorithms();
EVP_PKEY *prikey = nullptr, *pubkey = nullptr;
BIO *prifile = nullptr, *pubfile = nullptr;
RSA *pubrsa = nullptr, *prirsa = nullptr, *newra = nullptr;
prifile = BIO_new_file(argc[1], "r");
char passwd[] = "1111";
prikey = EVP_PKEY_new();
prikey = PEM_read_bio_PrivateKey(prifile, nullptr, 0, passwd);
prirsa = RSA_new();
/* all those code block combination will cause segmentation fault
* 1-3
* 1-4
* 2-3
* 2-4
* and output will be correct if i only use code block 3
* */
//1
//cout << EVP_PKEY_assign_RSA(prikey, prirsa) << endl;
//2
//cout << EVP_PKEY_set1_RSA(prikey, prirsa) << endl;
//3
//cout << EVP_PKEY_size(prikey) << endl;
//4
//cout << RSA_size(prirsa) << endl;
}
让我们说回来的错误是关于名称不是唯一的。
我想根据来自<Form
onSubmit={
(values) => makeAPICall(values).catch(e => ????)
}
>
...
<Field name='name'>
...
</Filed>
...
</Form>
的消息在Field
上设置错误。
我不知道如何从e
内部修改表单状态。
答案 0 :(得分:1)
react-final-form
项目有一个有关提交错误处理的代码框。
在这里:https://codesandbox.io/s/9y9om95lyp
基本上,在Forms渲染道具中,您必须向其传递一个包含submitError
的结构化对象,并检查字段中是否存在提交错误。
<Form
onSubmit={values => makeAPICall(values).catch(e => return { username: e })}
// ...
render={({
handleSubmit,
values,
// ...
}) => (
<form onSubmit={handleSubmit}>
<Field name="username">
{({ input, meta }) => (
<div>
<label>Username</label>
<input {...input} type="text" placeholder="Username" />
{meta.submitError && meta.touched && <span>{meta.submitError}</span>}
</div>
)}
</Field>
</form>
)}
/>