小编tre*_*son的帖子

最大选择数 MultiSelectListPreference Android

有什么办法可以在 Android 中为 MultiSelectListPreference 设置最大选择数?我只希望用户能够最多选择 5 个值。到目前为止,这是我的 xml:

<MultiSelectListPreference
        android:key="user_interests"
        android:title="interests"
        android:entries="@array/interests_array"
        android:entryValues="@array/interests_values"
        android:defaultValue="@array/interests_default_values" />
Run Code Online (Sandbox Code Playgroud)

如果从单独的 Fragment 中获得更复杂的功能会更容易,我很乐意改用它;虽然我不确定如何从 PreferenceScreen xml 开始一个片段;我试过 android:Fragment 但无济于事。

java xml android

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

嵌套对象解构

在解构对象时,我有时会遇到不知道密钥是否存在的问题,然后尝试从它们中提取值.这显然是错误,因为它们是未定义的.例如:

期待这样的事情:

{ user: { name: { first: 'Trey', last: 'Hakanson' } } }
Run Code Online (Sandbox Code Playgroud)

但我实际上得到了这个:

{ user: {} }
Run Code Online (Sandbox Code Playgroud)

并尝试像这样的错误进行解构:

const { user: { name: { first: firstName, last: lastName } } } = data
Run Code Online (Sandbox Code Playgroud)

有没有办法在解构前面分配一个默认值?比如name = { first: 'Hello', last: 'World' }如果name密钥不存在则分配?

javascript object destructuring ecmascript-6

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

动态设置Prop键JSX

我想知道是否有可能在JSX中执行以下操作(此代码不起作用,只是我正在尝试做的一个示例):

const propKey = 'someProp';
const jsx = <MyComponent [propKey]="some value" />;
// evaluates to <MyComponent someProp="some value">
Run Code Online (Sandbox Code Playgroud)

我正在使用babel es2015 stage-1,所以我可以像这样传播一个字典:

const extraProps = {[propKey]: 'some value'};
const jsx = <MyComponent {...extraProps} />
Run Code Online (Sandbox Code Playgroud)

但对于一个道具来说,这似乎太笨重了.我不打算使用React.createElement; 我所有的课程都是es6课程.谢谢!

javascript jsx ecmascript-6 reactjs

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

Luigi 编程配置

我在我的工作流程中使用了类似于以下内容的配置文件luigi

# Luigi logging configuration
[logging]
version = 1
disable_existing_loggers = false

[logging.formatters.simple]
format = "{levelname:8} {asctime} {module}:{lineno} {message}"
style = "{"
datefmt = "%Y-%m-%d %H:%M:%S"

# Luigi contrib configurations
[postgres]
marker-table="luigi_table_updates"
Run Code Online (Sandbox Code Playgroud)

然后luigi像这样从命令中调用:

# Luigi logging configuration
[logging]
version = 1
disable_existing_loggers = false

[logging.formatters.simple]
format = "{levelname:8} {asctime} {module}:{lineno} {message}"
style = "{"
datefmt = "%Y-%m-%d %H:%M:%S"

# Luigi contrib configurations
[postgres]
marker-table="luigi_table_updates"
Run Code Online (Sandbox Code Playgroud)

但是,我想以编程方式调用我的工作流程。我可以使用该luigi.build方法来做到这一点;但是,我尝试像这样传递我的配置路径:

LUIGI_CONFIG_PATH='path/to/luigi.toml' luigi ...
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

luigi.parameter.UnknownParameterException: core[args=(), kwargs={'local_scheduler': True, 'LUIGI_CONFIG_PATH': …
Run Code Online (Sandbox Code Playgroud)

python-3.x luigi

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

批量生成预签名URL boto3

我目前正在使用以下内容为存储桶资源创建预先签名的URL:

bucket_name = ...
key = ...
s3_client = ...

s3_client.generate_presigned_url(
    ClientMethod="get_object",
    Params={
        "Bucket": bucket_name,
        "Key": key
    },
    ExpiresIn=100
)
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,我想知道是否可以在一个请求中为多个密钥生成预先签名的URL?或者是否需要为每个密钥发出一个请求?我没有在有关此主题的文档中找到任何有用的内容.我正在寻找这样的东西:

bucket_name = ...
keys = [...]
s3_client = ...

# Returns an array of pre-signed urls, in the same order as `keys`
s3_client.generate_presigned_url(
    ClientMethod="get_object",
    Params={
        "Bucket": bucket_name,
        "Keys": keys
    },
    ExpiresIn=100
)
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 amazon-web-services boto3

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