小编Ped*_*nso的帖子

如何在父组件重新呈现时强制Apollo Query组件重新运行查询

<Query>在一个组件中使用Apollo Client ,在生命周期方法中更改状态时重新呈现该组件.我希望我的<Query>组件重新运行查询,因为我知道数据已更改.在重新运行查询之前,Query组件似乎正在使用需要失效的缓存.

我正在使用一个不稳定的解决方法来缓存refetch来自父组件中的渲染道具的回调,但感觉不对.如果有人有兴趣,我会在答案中发布我的方法.

我的代码看起来像这样.为简洁起见,我从查询中删除loadingerror处理了一些其他细节.

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也不会重新运行. …

reactjs graphql react-apollo apollo-client

11
推荐指数
2
解决办法
1万
查看次数

使用libcurl在C中进行JSON请求

我在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)

c json libcurl

10
推荐指数
3
解决办法
3万
查看次数

我们如何使用serverless.yml创建AWS S3存储桶并向其添加文件?

我想知道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

10
推荐指数
1
解决办法
1万
查看次数

如何为react-table函数添加ID?

我正在尝试根据教程将 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 react-table

1
推荐指数
1
解决办法
2977
查看次数