小编Nic*_*owr的帖子

Gitlab CI - 如果缓存存在,如何跳过作业

我的 CI 中有一份setup工作,它安装所有 npm 包并将它们存储在缓存中:

setup:
  stage: pre-build
  cache:
    untracked: true
    when: on_success
    key:
      files:
        - repo-hash
      prefix: workspace
  script:
    - yarn install --frozen-lockfile
Run Code Online (Sandbox Code Playgroud)

目前,如果 repo-hash 在两个管道之间没有更改,则作业会成功下载现有缓存,但它仍然运行yarn install --frozen-lockfile

如何更改此行为,以便如果缓存存在,则跳过此作业?

caching gitlab gitlab-ci yarnpkg

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

Formik 使用 React Native Switch

我的目标是Switch在 Formik 表单中使用基于(来自 React Native)的自定义组件。下面是表单组件的代码:

class NewPreferences extends React.Component {
render() {
    return(
        <View style={styles.mainContainer}>
            <View style={styles.newPreferencesContainer}>
                <Formik
                    initialValues={{
                        food: true
                    }}
                    onSubmit={async (values, action) => {
                        await this.props.onSubmitPress(values)
                        action.setSubmitting(false)
                    }}
                    render={({
                        values,
                        errors,
                        touched,
                        handleChange,
                        handleBlur,
                        handleSubmit,
                        isSubmitting,
                    }) => (
                        <View style={styles.formikNewPreferences}>
                            <View style={styles.itemRow}>
                                <Field
                                    source={images.food.uri}
                                    onChange={handleChange('food')}
                                    value={values.food}
                                    name="food"
                                    component={ToggleButton}
                                />

                            </View>
                            <TouchableOpacity
                                style={styles.button}
                                onPress={handleSubmit}
                                disabled={isSubmitting}
                            >
                                <Text>Login</Text>
                            </TouchableOpacity>
                        </View>
                    )}
                    />
            </View>
        </View>
    );
}
Run Code Online (Sandbox Code Playgroud)

该组件ToggleButton如下所示:

class ToggleButton extends React.Component<ToggleButtonInterface> {
render() { …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native formik

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

在 Nodejs 中复制 React Context

我想在 Nodejs 中复制 React Context 的行为,但我正在努力解决它。

在反应,通过创建只有一个背景下,我可以提供,在我的组件占用不同的值,取决于value给予<Provider/>。所以以下工作:

const MyContext = React.createContext(0);

const MyConsumer = () => { 
  return (
    <MyContext.Consumer>
      {value => {
        return <div>{value}</div>
      }}
    </MyContext.Consumer>
  )
}

const App = () => 
    <React.Fragment>
      <MyContext.Provider value={1}>
        <MyConsumer/>
      </MyContext.Provider>
      <MyContext.Provider value={2}>
        <MyConsumer/>
      </MyContext.Provider>
    </React.Fragment>;

ReactDOM.render(
  <App/>,
  document.getElementById("react")
);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="react"></div>
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何在 Nodejs 中实现它。我已经查看了 React Context 的源代码,但它没有多大帮助......这是我到目前为止所得到的:

// context.js
export const createContext = (defaultValue: number) => {
  const context = {
    value: defaultValue, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js reactjs react-context

6
推荐指数
2
解决办法
205
查看次数

Airflow 将 postgres 数据库的所有表导出到 BigQuery

我目前正在使用 AirflowPostgresToGoogleCloudStorageOperator并将GoogleCloudStorageToBigQueryOperator我的 Postgres 数据库(托管在 AWS RDS 上)的每个表导出到 BigQuery。它有效,但我有 75 个表,所以 Airflow 创建了 75 * 2 个工作。由于我是 Airflow 的新手,我不知道这是否是一个好习惯。

无论如何,我想找到一种方法将所有表一次(pg_dump?)导出到 GCS,然后将它们导入 BigQuery。

postgresql google-cloud-storage google-bigquery airflow google-cloud-composer

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

导出 typescript 包中的多个函数

我正在用 Typescript 编写一个 npm 包,它实现了多个功能。

\n\n

目前,我正在导入文件中的所有函数index.ts并立即重新导出它们:

\n\n
import { functionA, functionB } from "./file1";\nimport { functionC, functionD } from "./file2";\nexport {\n  function A,\n  function B,\n  function C,\n  function D,  \n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我可以在其他项目中使用它们import { functionA }\xc2\xa0from "package";

\n\n

但是我想导出这些函数,以便我可以在另一个项目中使用这样的包(不使用类):

\n\n
import _ from "package"\nconst foo = _.functionA(...);\nconst bar = _.functionB(...);\n
Run Code Online (Sandbox Code Playgroud)\n\n

这与Lodash的实现类似。我在很多地方进行了搜索,但是在打字稿中导出内容非常令人困惑(例如,index.d.ts在 lodash 中,有两个导出 for_和 some declare const, declare namespacestuff...)

\n

module package npm typescript

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