Formik & React Native: обновить родительское значение - PullRequest
0 голосов
/ 10 июля 2019

У меня есть «виртуальное» поле inspection.images, которое мне нужно обновить из дочернего компонента, используя setFieldValue, но оно не обновляется. Что я делаю не так?

родитель-component.js

...
<Formik
    initialValues={{
        inspection: {images:[]}
    }}
    onSubmit={values => {
        console.log('form values: ');
        console.log(JSON.stringify(values, null, 2));
    }}
    render={({values, isValid, handleSubmit, setFieldValue, errors}) => (
        <View style={styles.screen}>
            <Walkthrough onChanged={this.onWalkThroughIndexChanged}>
                <InspectionForm navigation={this.props.navigation} values={values} setFieldValue={setFieldValue}
                                mediaObjectsHandler={this.mediaObjectsHandler.bind(this)}/>
            </Walkthrough>
        </View>
    )}
/>

ребенок-component.js

...
export class InspectionForm extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            inspectionMedia: [],
            progress: 0,
        };
        props.setFieldValue('inspection.images', [...props.values.inspection.images, 'xxxx.png']);
    }

    render() {
        return (
            ...
        );
    };
}

1 Ответ

0 голосов
/ 10 июля 2019
Поле

должно соответствовать ключу значений, которые вы хотите обновить

Похоже, вы должны использовать inspection вместо inspection.images

...