Eugene
Товарищи, а какой самый нормальный/популярный путь импортировать svg картиночки? 🤔
Anonymous
Ребят, в чем может быть проблема, после expo eject запускаю аппу через xcode, но аппа пытается подключиться к 80 порту, тогда как expo запускает сборку на 19000. Кто-нибудь сталкивался?
Никита
Всем привет. Подскажите пожалуйста - как в FlatList-е динамически менять numColumns? Например брать его из стейта. Сейчас при попытке это сделать вылетает ошибка - Changing numColumns on the fly is not supported
в меня полетят камни, но если это не сильно критично просто передавать numColumns еще и в key списка - он будет пересоздаваться и ошибки не будет Другой вариант пытаться колдавать с contentContainerStyle - делать row и flexWrap: ‘wrap’. Тогда управляя шириной итемов будет регулироваться количество колонок (в теории)
GrafMine
Ребят, вопрос про TextInput продолжаеться 🙂 сделал мини проект с конкретной проблемой, что игнориться value у TextInput’a. вот код и лог : https://gist.github.com/GrafMine/680e2c6e9565c2ede5f35335f3133491
GrafMine
GrafMine
весь сок добавляет то что по кнопке с точно такой же механикой как в changeValue текст меняеться железно
Aynur
onChangeText={(value) => this._onChangeValue(value)}
Ivan
Попробуй на андроиде, в иос бага была
GrafMine
Ок
апнул )
GrafMine
onChangeText={(value) => this._onChangeValue(value)}
попробовал так же само
GrafMine
Попробуй на андроиде, в иос бага была
ну как бы если оно даже на дроиде и будет работать ))) то это не выход)
Ivan
Ну прост чтоб убедиться, что это та же бага
Ivan
Как костыль в onChangeText/onEndEdit/onBlur можно обновлять какой-то счетчик в стейте, который будет пропсом key у инпута, который тормозит
GrafMine
звучит жостко )) сейчас попробую )
GrafMine
работает спасибо, но фокус теряеться сразу когда что либо ввел
Ivan
Тебе ведь нужен фокус на другом инпуте?
GrafMine
нет на этом же
Ivan
Тогда можно доработать костыль установкой фокуса в калбеке сетстейта)
Ivan
Какая версия рн?
GrafMine
ахах)) "expo": "^30.0.0", "react-native": "https://github.com/expo/react-native/archive/sdk-30.0.0.tar.gz",
Ivan
А, точн)
Бобомурод
хорошо сказали. спасибо
GrafMine
Тогда можно доработать костыль установкой фокуса в калбеке сетстейта)
ага а потом еще как-то возвращать если был на намерной раскладке на номерную)))
Doc
Ребят кто может помочь.. голву сломал есть родительский компонет. в нем есть компонент сообщения, в компоненте сообщения есть функция которая срабатывает на onPress. если перейти на другой экран, и потом вернуться назад, функция будет срабатывать два раза, если так повторить три - пять раз она выполнится соответсвенно 3 - 5 раз,, что я упускаю
Doc
дочерний export class Message extends React.Component { clienteditOrderCENCEL = (e) => { this.props.mainStore.socket.emit("BOT:key", { order: e, msg: "order:edit" }); }; render() { <TouchableOpacity style={[styles.orderBtn]} onPress={this.clienteditOrderCENCEL.bind(this, this.props.orderInfo.idOrder)}> <Text style={{ color: "#000" }}>Редактировать</Text> </TouchableOpacity> }} Родитель export class MessageList extends React.Component { render() { <Message key={uuidv4()} type={message.typeMsg} uri={message.uri} text={message.text} user={message.from.name} date={message.date} from={message.from} orderInfo={message.orderInfo} />; }}}
Doc
код конечно сократил, и оставил только то что касается проблемы выносил <TouchableOpacity в отдельный компонент, все равно у меня есть предположения что изза .bind, но разобраться не могу если удаляю .bind функция срабатывает просто так, как будто я ее интервалом вызываю а не по клику
Dmitry
Дело не в этом
Dmitry
зачем биндить стрелку?
вот тоже заметил
Dmitry
и вот это key={uuidv4()}
Doc
вот тоже заметил
честно не помню почему так сделал. но если убираю bind, то функция не по тапу начинает работать а интервалом и без клика
Doc
и вот это key={uuidv4()}
там много компонентов message, ключ чтобы был просто уникальный
Aleksei
честно не помню почему так сделал. но если убираю bind, то функция не по тапу начинает работать а интервалом и без клика
а покажите как вы убираете bind? что то мне подсказывает что так onPress={this.clienteditOrderCENCEL(this.props.orderInfo.idOrder)}
Aleksei
нет, почти onPress={this.clienteditOrderCENCEL(this.props.orderInfo.idOrder)}
export class Message extends React.Component { clienteditOrderCENCEL = (e) => { this.props.mainStore.socket.emit("BOT:key", { order: this.props.orderInfo.idOrder, msg: "order:edit" }); }; render() { <TouchableOpacity style={[styles.orderBtn]} onPress={this.clienteditOrderCENCEL}> <Text style={{ color: "#000" }}>Редактировать</Text> </TouchableOpacity> }}
Doc
еще делал вот так но это же тоже что и bind onPress={() => this.clienteditOrderCENCEL(this.props.orderInfo.idOrder)}
Aleksei
еще делал вот так но это же тоже что и bind onPress={() => this.clienteditOrderCENCEL(this.props.orderInfo.idOrder)}
у стрелок нет bind-а, если мне не изменяет память так вообще ошибку в рантайме получить можно
Doc
Попробывал, вроде все хорошо, НО все равно если уйти со стараницы и вернуться обратно то функция сабатывает два раза
Aynur
если вы пишете в методе onPress={method()}, а не, onPress={()=>method()} он будет вызываться сразу
Aynur
при рендере
Doc
вот на видео видно, что если компопнет перерендоривается, то фуннция начинает срабатывать два раза если перерендерить три раза то три ращза сработает
Dmitry
А откуда данные грузятся,
Dmitry
и как
Dmitry
это очень похоже на зацикливание внутри middleware у redux
Doc
это очень похоже на зацикливание внутри middleware у redux
не использую редукс,, mobx под капотом
Doc
данные в mobx
Dmitry
я думаю, что нужно его курить
Doc
тоесть дело в нем модет быть.. хорошо..
Dmitry
просто я точно знаю, что у меня так же было с сокетами и редаксом, прям один в один
Doc
я просто не понмиаю почему он начинает выполнять функцию столько ращ сколько комопонент был перерендерен
Dmitry
я думаю, что тебе стоит залить куда-то проект, чтобы его можно было поковырять руками и посмотреть архитектуру
Doc
вообщем я тут понял одну штуку, функицю он один ращ выполняет
Doc
сокеты два раза выполняются
Dmitry
Переписал код миддлвары
Doc
вообщем до сиз пор не понимаю..
Dmitry
Я точно не помню. Было, что-то вроде того, что диспатч экшена из сабскрайба сокета, вызывал добавление еще одного диспатча в очередь
Dmitry
но у mobx observe
Dmitry
может и в них косяк какой, но я mobx не знаю
Chu
Всем привет! А такой вопрос. Кто-нибудь запускал код, в котором используются какие-то импорты экспо не через экспо, а через babel-cli ?
Chu
Chu
Вот такие ошибки начинает кидать.
Chu
Хотя если не импортить экспошного кода, то всё ок.
Dmitry
на андроиде ругается на конструкции в рендера типа {condition && (<Text> {some text}</Text>)} текст ошибки на скрине при этом на ios такие конструкции работают корректно, можно ли как-то пофикcить?
Dmitry
{condition && <Text> {some text}</Text>}
убрал круглые скобки? не помогло.
Anonymous
Скрин рендера целиком
Gena
Вроде последние версии RN стали это валидировать и раньше валиться. У вас какая?
Dmitry
весь рендер не поместится на скрин, но нужная часть вот )
Gena
попробуй так {condition ? <React.Fragment /> : <Text style={styles.somestyle}>Some text </Text>}
Вот так не надо... зачем целый пустой фрагмент конструировать, можно же просто null передать.
Dmitry
171 строка