#reactjs #react-native #react-redux #rxjs #react-router
#reactjs #react-native #react-redux #rxjs #реагировать-маршрутизатор
Вопрос:
В моем приложении react-native у меня есть экран, на котором он содержит форму. Я хочу отправить форму при загрузке экрана, потому что значения в форме будут постоянными. Итак, я хочу отправить форму при загрузке. Возможно ли это? Может кто-нибудь мне помочь..
<PrimaryButton
// onPress={onSubmit(siteUrl)}
onPress={() => onSubmit(siteUrl)}
text={translate("general.enter")}
style={styles.buttonEnter}
mode={isSiteUrlSubmitted ? "loading" : undefined}
/>
я попробовал это
onPress={onSubmit(siteUrl)}
но это показывает инвариантное нарушение: слишком много повторных рендерингов. React ограничивает количество рендеров, чтобы предотвратить бесконечный цикл.
Комментарии:
1. можете ли вы показать, что происходит внутри onSubmit?
Ответ №1:
вы можете вызвать onSubmit()
React.useEffect
как таковой
React.useEffect(() => {
onSubmit()
}, []);
При добавлении пустых круглых скобок
Это будет выполнено только один раз при загрузке
Комментарии:
1. Спасибо за ваш быстрый ответ. Я надеюсь, что это то, что вы имеете
useEffect(() => { onSubmit(siteUrl); });
в виду, но я получил инвариантное нарушение ошибки: превышена максимальная глубина обновления. Это может произойти, когда компонент повторно вызывает setState внутри componentWillUpdate или componentDidUpdate . React ограничивает количество вложенных обновлений, чтобы предотвратить бесконечные циклы.2. привет @sreenumalae добавить
,[]
после } вuseEffect
качествеuseEffect(() => { onSubmit(siteUrl); },[]);
3. Привет @yoel Я сделал, как вы сказали, но все равно я получил то же самое нарушение инварианта ошибок: превышена максимальная глубина обновления. Это может произойти, когда компонент повторно вызывает setState внутри componentWillUpdate или componentDidUpdate . React ограничивает количество вложенных обновлений, чтобы предотвратить бесконечные циклы.
4. @sreenumalae Вы удалили ее из
onPress
?5. Да, я пытался, удалив, и я также попытался, удалив всю PrimaryButton.