我<Query>在一个组件中使用Apollo Client ,在生命周期方法中更改状态时重新呈现该组件.我希望我的<Query>组件重新运行查询,因为我知道数据已更改.在重新运行查询之前,Query组件似乎正在使用需要失效的缓存.
我正在使用一个不稳定的解决方法来缓存refetch来自父组件中的渲染道具的回调,但感觉不对.如果有人有兴趣,我会在答案中发布我的方法.
我的代码看起来像这样.为简洁起见,我从查询中删除loading并error处理了一些其他细节.
class ParentComponent extends React.Component {
componentDidUpdate(prevProps) {
if (this.props.refetchId !== prevProps.refetchId) {
const otherData = this.processData() // do something
this.setState({otherData}) // this forces component to reload
}
}
render() {
const { otherData } = this.state
return (
<Query query={MY_QUERY}>
{({ data }) => {
return <ChildComponent gqlData={data} stateData={otherData} />
}}
</Query>
)
}
}
Run Code Online (Sandbox Code Playgroud)
如何强制<Query>获取要传递的新数据<ChildComponent>?
即使ParentComponent在道具或状态发生变化时重新渲染,Query也不会重新运行. …
我在C中使用libcurl定义了一个带有JSON请求体的PUT请求.
我是这样做的:
sprintf(jsonObj, "\"name\" : \"%s\", \"age\" : \"%s\"", name, age);
struct curl_slist *headers = NULL;
curl_slist_append(headers, "Accept: application/json");
curl_slist_append(headers, "Content-Type: application/json");
curl_slist_append(headers, "charsets: utf-8");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jsonObj);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcrp/0.1");
res = curl_easy_perform(curl);
Run Code Online (Sandbox Code Playgroud)
请求正文如下:
{ '"name" : "Pedro", "age" : "22"' }
Run Code Online (Sandbox Code Playgroud)
随着{ '在开始和' }结尾.
- - 更多信息 - - -
如果我声明这段代码
char* jsonObj = "{ \"name\" : \"Pedro\" …Run Code Online (Sandbox Code Playgroud) 我想知道serverless.yml在无服务器框架的部署过程中是否可以利用创建存储桶并向其添加特定文件.
到目前为止,我已经能够添加创建存储桶的S3资源,但不知道如何添加特定文件.
resources:
Resources:
UploadBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: ${self:custom.s3.bucket}
AccessControl: Private
CorsConfiguration:
CorsRules:
- AllowedMethods:
- GET
- PUT
- POST
- HEAD
AllowedOrigins:
- "*"
AllowedHeaders:
- "*"
Run Code Online (Sandbox Code Playgroud)
不确定是否可能,或者serverless.yml在部署过程中如何利用上传默认文件(如果还没有).
amazon-s3 aws-cloudformation aws-lambda serverless-framework
我正在尝试根据教程将 react-table 与 useRowSelect 一起使用。我有一个 REST 应用程序正在运行,/associate但无法弄清楚如何"selectedFlatRows[].original"从表中获取数据。以一种形式使用两个表也会使事情复杂化。
function App() {
//...
function handleSubmit(event) {
event.preventDefault();
const data = new FormData(event.target);
fetch('/associate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: data,
});
}
return (
<form onSubmit={handleSubmit}>
<Styles>
<Table columns={tcsColumns} data={tcsList} />
<Table columns={planColumns} data={planList} />
<br />
<button>Associate!</button>
</Styles>
</form>
);
}
Run Code Online (Sandbox Code Playgroud)
如何访问我的两个表的数据?
reactjs ×2
amazon-s3 ×1
aws-lambda ×1
c ×1
graphql ×1
json ×1
libcurl ×1
react-apollo ×1
react-table ×1