小编nop*_*rt1的帖子

运行 sh 文件时 k8s initContainer 上的权限被拒绝

我有一个包含 2 个容器的 k8s YAML 文件。initContainer和主容器。我正在使用卷来安装要运行的脚本文件,initContainer但出现permission denied错误。这是片段。

  volumes:
  - name: casacm-script
    configMap:
      name: {{ include "oxauth.name" . }}-casacm-script 
Run Code Online (Sandbox Code Playgroud)

initContainer我安装它就像

 initContainers:
  - name: {{ include "oxauth.name" .}}-init 
    image: gcr.io/cloud-builders/kubectl:latest
    command: 
      - sh
      - -c 
      - /scripts/casacm.sh   
    volumeMounts:
      - name: casacm-script
        mountPath: "/scripts/casacm.sh"
        subPath: casacm.sh
Run Code Online (Sandbox Code Playgroud)

bash kubernetes

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

错误代码 513:您无权访问“文档”

你好,我使用 NSUelSession 下载大文件,在某些设备的 didFinishDownloadingToUrl 中随机出现此错误

错误代码 513:您无权访问“文档”

当我尝试将文件移动到文档目录时。当连接到 Xcode 时,我无法在实际设备上重现此错误,在运行 iOS 13 和 12 的随机设备上如何发生这种情况。问题是什么?这是我的 saveFile 函数

func saveFile(location : URL , fileName : String) {
    let documentsPath = NSURL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])

    let savedURL = documentsPath.appendingPathComponent(fileName)

    do {

        try self.fileManager.moveItem(atPath: location.relativePath , toPath: savedURL!.relativePath)

    }
    catch let error as NSError {

        print("Ooops! Something went wrong: \(error)")

        do {
           SCLAlertView().showError("File Not Saved", subTitle: "Error Code \. (error.code) : \(error.localizedDescription)")

           try  fileManager.removeItem(at: location)
        }
        catch {
           print(error.localizedDescription)
        }
    }  
}
Run Code Online (Sandbox Code Playgroud)

nsfilemanager nsurlsession swift

5
推荐指数
0
解决办法
3640
查看次数

Apollo HttpLink 异步

对于以下代码:

const apolloClient = new ApolloClient({
  cache: new InMemoryCache(),
  link: new HttpLink({
    uri: endpoint,
    headers: {
      'Content-Type': 'application/json',
      Authorization: `Bearer ${token}`
    }
  })
});
Run Code Online (Sandbox Code Playgroud)

我需要异步endpoint获取token。我该怎么做?

谢谢

asynchronous apollo react-apollo apollo-client

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

从 Azure DevOps 获取已通过 JavaScript 合并到分支中的所有工作项

这个想法

我目前正在使用 NodeJS 开发一个“发行说明”应用程序,该应用程序调用各种 Azure DevOps REST API 端点来获取基于特定标签的工作项。

我现在拥有的

我现在所拥有的工作原理如下;

  • Azure DevOps 上的一些工作项(自定义)标记有v1.1.
  • 我编写的 JS 函数会获取与给定v1.1标签匹配的所有工作项。
  • 维基条目是使用生成的降价创建的,显示每个工作项的细分(格式对问题并不重要)。
/**
 * Function used to fetch initial work items from Azure DevOps that match the provided release number
 * @param {String} releaseNumber - the given release number
 * @returns {Array} workItems - the initial work items fetched from Azure DevOps
 */
async function fetchWorkItems(releaseNumber) {
    console.log('\nFetching work items for given release number...');
    let response;
    try {
        response …
Run Code Online (Sandbox Code Playgroud)

javascript azure azure-devops azure-pipelines azure-devops-rest-api

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

React - 添加 onClick 后重新渲染过多

我对反应还很陌生,我正在玩一个非常简单的网站,它从 pokemon api 获取数据。

网站图片 - 屏幕截图

我想在我的列表项上添加一个 onClick 事件,以在单击时更改 css。但是当我像这样将 setExpand(!expand) 添加到我的列表项时,<Li onClick={setExpand(!expand)}>我收到一个错误,告诉我“错误:重新渲染次数太多。React 限制渲染数量以防止无限循环”,我无法理解。

主要的

//Styling
const Section = styled.section`
  margin-top: 100px;
`;

const Ul = styled.ul`
  margin:0;
  padding:0;
  list-style:none;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
`;

const Main = styled.main`
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
`;

export default function Test() {
  //States
  const [pokemonArray, newPokemon] = useState([]);

  //Hooks
  useEffect(() => {
    (async () => {
      const dataArray = [];
      for (let i = 1; i < 6; …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

React 组件的状态在 Jest 单元测试中未更新

我有一个简单的表单作为 React 组件。单击按钮后,将调用handleSubmit(),该方法会进行标注,并在标注成功时清除表单。我尝试进行 Jest 单元测试来测试表单在提交后是否被清除。

it('handles form submission', () => {
    Amplify.API.post = jest.fn().mockImplementation(() => Promise.resolve());
    EventEmitter.emit = jest.fn().mockImplementation(() => Promise.resolve());

    wrapper.setState({
        diocese: {
            name: 'My New Diocese',
            id: '123',
            generalCollectionOnly: false,
            aggregatePayments: false,
            aggregatePledges: false,
        },
    });

    footer.children().find(Button).at(1).simulate('click');
    expect(wrapper.state().diocese.name).toEqual('');
});
Run Code Online (Sandbox Code Playgroud)

调试后,我可以看到表单已成功提交并调用了 this.setState():

this.setState(() => ({
    diocese: {
        id: '',
        name: '',
        generalCollectionOnly: false,
        aggregatePledges: false,
        aggregatePayments: false,
    },
    isLoading: false,
}));
Run Code Online (Sandbox Code Playgroud)

然而,expect 语句失败,因为名称仍然显示“我的新教区”,即使它应该被清除。经过一些研究后,我认为更新包装器会有所帮助:

wrapper.update();
Run Code Online (Sandbox Code Playgroud)

但是,它仍然显示组件的状态尚未清除。为什么测试中状态没有更新?

reactjs jestjs enzyme

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