小编Bok*_*oky的帖子

在redux reducer中调用一个动作

我的reducer中的代码如下:

import {ADD_FILTER, REMOVE_FILTER} from "../../../../actions/types";

const removeFilter = (state, name) => {
    return state.filter(f => f.name !== name);
};

export default function addRemoveFilterReducer(state = [], action) {
    switch (action.type) {

        case ADD_FILTER:
            let nState = state;

            if(state.some(i => i.name === action.searchFilter.name))
                nState = removeFilter(state, action.searchFilter.name);

            return [...nState, {name: action.searchFilter.name, values: [action.searchFilter.values]}];

            //Call another action    

        case REMOVE_FILTER:
            return removeFilter(state, action.searchFilter.name);

        default:
            return state;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个组件陈列室,在展厅内我有搜索组件和内容组件.

在搜索组件里面,我处理过滤,然后我发送一个用这个reducer处理的动作.

添加过滤器后,我想分配一个包含所有过滤器的操作.我怎样才能做到这一点?

该操作将使用reducer处理,我只返回符合搜索条件的汽车并将其显示在内容组件中.

我希望你明白我想说的话.

这种方法有用吗?

javascript reactjs redux react-redux

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

react js中的复选框不会改变

我的主要组件如下:

export default class RegistrationFormStepFour extends React.Component{
constructor(props){
    super(props);
    this.state = {
        terms: false,
        emailNotifications: false,
        smsNotifications: false,
        errors: {}
    }
}


handleTerms(event){
    event.preventDefault();
    this.setState({terms: !this.state.terms});
}

render(){
    const language = this.props.currentLanguage;

    return (
        <div>
            <Terms
                nameYes="chcTerms"
                text={language.termsText}
                state={this.state.terms}
                onChange={this.handleTerms.bind(this)}
                currentLanguage={language}
                error={this.state.errors.terms}/>

        </div>
    );
}
}
Run Code Online (Sandbox Code Playgroud)

组件项如下:

import React from 'react';

const Terms = ({nameYes, text, state, onChange, error}) => {

let hasError = error ? "hasError" : "";

return (
    <div className="col-lg-12 text-center" style={{marginBottom: 30}}>
        <form>
            <label className="radio-inline">
                <input …
Run Code Online (Sandbox Code Playgroud)

javascript checkbox reactjs

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

更新一些对象属性

我有这样的事情:

let test = [
             {
              name: "Mark",
              address: "Some adress",
              company: "company name",
              age: 21
             }
]

let test1 = [
             {
              name: "Steve",
              age: 27
             }
    ]
Run Code Online (Sandbox Code Playgroud)

如何使用test1更新测试?因此,我想得到的是:

let test2 = [
             {
              name: "Steve",
              address: "Some adress",
              company: "company name",
              age: 27
             }
]
Run Code Online (Sandbox Code Playgroud)

javascript

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

如何使用另一个字典列表过滤字典列表

我想用 Python 和 Django 中的另一个字典列表来过滤字典列表。

我有一个过滤器列表,如下所示:

filters = [{'type': 'make', 'value': 'SEAT'}, {'type': 'model', 'value': 'Acura'}]
Run Code Online (Sandbox Code Playgroud)

我有一个车辆列表如下:

vehicles = [
  {'make': 'Audi', 'model': 'A3', 'transmission': 'Manual'},
  {'make': 'Audi', 'model': 'A1', 'transmission': 'Automatic'},
  {'make': 'Seat', 'model': 'Acura', 'transmission': 'Manual'},
  {'make': 'Seat', 'model': 'LEON', 'transmission': 'Manual'},
  {'make': 'Skoda', 'model': 'Octavia', 'transmission': 'Manual'},
]
Run Code Online (Sandbox Code Playgroud)

我想获得所有带有make Seat和 的车辆model Acura。因此我想要的结果是:

[      
  {'make': 'Seat', 'model': 'Acura', 'transmission': 'Manual'}
]
Run Code Online (Sandbox Code Playgroud)

我尝试了如下方法:

def filter_item(vehicle, filters):
    for fil in filters:
        key = fil['type']
        value = …
Run Code Online (Sandbox Code Playgroud)

python django

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

获取在 React Native ios 中不起作用

我在 React Native 中有登录功能,我尝试在其中获取数据。功能如下:

onLogin: function() {  //
        const self = this;
        self.setState({modalVisible: true, modalMessage: 'Signing in'});
        fetch('http://psa.autralis.com/manager/api/v1/obtain-auth-token/', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify({
                username: self.state.username,
                password: self.state.password,
            })
        })
            .then(response => response.json())
            .then(data => console.log(data))
            .catch((error) => {
                console.warn(error);
            });
    },
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,它不适用于ios。我收到一个错误:

在此处输入图片说明

在 android 上它可以工作,我用邮递员对其进行了测试,它也可以工作。

任何的想法?

react-native fetch-api react-native-ios

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

如何使用Django Rest Framework序列化字符串列表

我在Django rest框架中有序列化程序如下:

class StateSerializer(serializers.ModelSerializer):       

    kilometers = Field(source='mileage')
    pictures = StatePictureSerializer(many=True, read_only=True)

    class Meta:
        model = Inspection   # Options
        fields = ('kilometers', 'inspection_date', 'pictures')
Run Code Online (Sandbox Code Playgroud)

StatePictureSerializer如下:

class StatePictureSerializer(serializers.ModelSerializer):
    blob_url = Field(source='public_url')

    class Meta:
        model = Inspection_Picture
        fields = ('blob_url', )
Run Code Online (Sandbox Code Playgroud)

结果我得到如下内容:

{    
    "kilometers": 64431, 
    "inspection_date": null, 
    "pictures": [
        {"blob_url": "path/to/photo"}, 
        {"blob_url": "path/to/photo"}, 
        {"blob_url": "path/to/photo"}, 
        {"blob_url": "path/to/photo"}, 
        {"blob_url": "path/to/photo"}
    ]
}
Run Code Online (Sandbox Code Playgroud)

因此,pictures是一个对象数组.

我想要的是一个字符串数组,例如:

"pictures": ["path/to/photo", "path/to/photo", "path/to/photo", "path/to/photo", "path/to/photo"]
Run Code Online (Sandbox Code Playgroud)

知道怎么做吗?

编辑

Inspection 型号如下:

class Inspection(models.Model):
    customerReference = models.CharField(max_length=50, blank=True, …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

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

如何在 Python 中检查 for 循环是否被中断

是否有任何 Pythonic 方法可以知道 for 循环是否被中断?

我有一个非常大的列表,有 100 000 条记录。我想遍历所有列表项,但我想知道是否出于某种原因(例如:如果电源没电,如果电池因任何其他原因没电)循环被中断并且没有到达列表的结尾。

因此,例如,如果我有如下列表:

some_list = ["item1", "item2", "item3", "item4", "item5"]
for item in some_list:
    # If it came to item3 and it's interrupted. How can I know that?
    print(item)
Run Code Online (Sandbox Code Playgroud)

python

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