Size: a a a

React Native — русскоговорящее сообщество

2019 November 21

К

Константин in React Native — русскоговорящее сообщество
Привет всем, кто-нибудь имеет богатый опыт работы с react-native-navigation от wix?
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Vitalii Obideiko [Obidos]
а в чем проблема сделать компонент маски полностью нативным? Пробросил маску по бриджу и крутись в нативе (дольше - да, нереально - хм)
Да, можно. Но, придется правила для маски передавать из JS, а т.к. эти правила могут быть мега сложными, то это не просто. Можно так сделать, но до сих пор никто не сделал. Тот нативный компонент на который ссылались пытается обойтись малой кровью и там маска нативная, но она расширяет стандартный RN'овский TextInput, который мега сложный и в результате там довольно много глюков.
источник

VO

Vitalii Obideiko [Obidos] in React Native — русскоговорящее сообщество
Константин
Привет всем, кто-нибудь имеет богатый опыт работы с react-native-navigation от wix?
Лучше вопрос сразу задавать и по существу 🙂
источник

К

Константин in React Native — русскоговорящее сообщество
Vitalii Obideiko [Obidos]
Лучше вопрос сразу задавать и по существу 🙂
В моем проекте wix и mobx, при передаче через passProps данных из store, он "убивает" ссылку на объект store, можно ли этого как-то избежать без костылей?
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Константин
В моем проекте wix и mobx, при передаче через passProps данных из store, он "убивает" ссылку на объект store, можно ли этого как-то избежать без костылей?
Нет. Я не очень уверен, но скорей всего, оно передает данные в натив, значит сериализует, при этом как раз потеряются все ссылки на глобальные объекты и десериализованные объекты больше не будут связаны с исходными. Поэтому единственный способ, передавать эти данные в виде своего слоя сериализации/десериализации... Условно при создании экрана сохранять в глобальный мэп по id параметры для него, а при рендере эти параметры доставать и инжектить в компонент. При уничтожении экрана соотвественно чистить элемент мэпа.
источник

К

Константин in React Native — русскоговорящее сообщество
Gena Black
Нет. Я не очень уверен, но скорей всего, оно передает данные в натив, значит сериализует, при этом как раз потеряются все ссылки на глобальные объекты и десериализованные объекты больше не будут связаны с исходными. Поэтому единственный способ, передавать эти данные в виде своего слоя сериализации/десериализации... Условно при создании экрана сохранять в глобальный мэп по id параметры для него, а при рендере эти параметры доставать и инжектить в компонент. При уничтожении экрана соотвественно чистить элемент мэпа.
Ну вот мне тоже самое пришло в голову, но ощущение, что это костыль
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Константин
Ну вот мне тоже самое пришло в голову, но ощущение, что это костыль
Это ограничение бриджа, у всех так. У тех, у кого это не так, просто этот же костыль на уровне фреймворка реализован. На самом деле, к примеру (может быть устаревшая инфа, но ещё в 0.49 так было), бридж даже коллбэки JS'ные не может в натив передать, он их так же сохраняет в JS, а в натив сгенерированный id'шник передает...
источник

К

Константин in React Native — русскоговорящее сообщество
Gena Black
Это ограничение бриджа, у всех так. У тех, у кого это не так, просто этот же костыль на уровне фреймворка реализован. На самом деле, к примеру (может быть устаревшая инфа, но ещё в 0.49 так было), бридж даже коллбэки JS'ные не может в натив передать, он их так же сохраняет в JS, а в натив сгенерированный id'шник передает...
Понял, спасибо
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Да, точно, вон и сейчас все таймеры, промисы и коллбэки что должны из натива дернуться, все на стороне JS держатся: https://github.com/facebook/react-native/blob/0.62-stable/Libraries/BatchedBridge/MessageQueue.js#L43-L45
источник

Д

Денис in React Native — русскоговорящее сообщество
Как через XCode запустить релизную версию на девайсе? На андроиде все работает через react-native run-android --variant=release
источник

Д

Денис in React Native — русскоговорящее сообщество
react-native run-ios --configuration Release запускает эмулятор
источник

AP

Artemka P. in React Native — русскоговорящее сообщество
Всем привет!
Как переопределить стили компонента (или как оно там называеться) в другом экране, где я его вызыаю ?

у меня есть экран Main.js

const Logo = () => (
 <Image source={require('../assets/logo.png')} style={styles.image} />
);

const styles = StyleSheet.create({
 image: {
   width: 200,
   height: 70,
 },
});

и есть экран Screen2.js где я использую этот компонент

<Logo style={styles.image}/>

const styles = StyleSheet.create({
 image: {
   width: 100,
   height: 200,
   marginBottom: 100,
 },
});

и используя ту же схему у меня не получаеться изменить стили этого компонента <Logo>

Подскажите пожалуйста как мне это сделать ?
источник

SS

Serhey Shmyg in React Native — русскоговорящее сообщество
style={[style.img1, style.img2]}
источник

AP

Artemka P. in React Native — русскоговорящее сообщество
Serhey Shmyg
style={[style.img1, style.img2]}
в экран Main.js ?

мне там определить стили "style.img2" ?

типа:

const styles = StyleSheet.create({
 image1: {
   width: 200,
   height: 70,
 },
 image2: {
 width: 100,
 height: 200,
 marginBottom: 100,
},
});

и на экране Screen2.js прописать для компонента
<Logo style={[style.img2]}/>  
так ?
источник

M[

Maxim 📱 Dzhafarov [R10] in React Native — русскоговорящее сообщество
Artemka P.
Всем привет!
Как переопределить стили компонента (или как оно там называеться) в другом экране, где я его вызыаю ?

у меня есть экран Main.js

const Logo = () => (
 <Image source={require('../assets/logo.png')} style={styles.image} />
);

const styles = StyleSheet.create({
 image: {
   width: 200,
   height: 70,
 },
});

и есть экран Screen2.js где я использую этот компонент

<Logo style={styles.image}/>

const styles = StyleSheet.create({
 image: {
   width: 100,
   height: 200,
   marginBottom: 100,
 },
});

и используя ту же схему у меня не получаеться изменить стили этого компонента <Logo>

Подскажите пожалуйста как мне это сделать ?
сек и отвечу
источник

M[

Maxim 📱 Dzhafarov [R10] in React Native — русскоговорящее сообщество
Artemka P.
в экран Main.js ?

мне там определить стили "style.img2" ?

типа:

const styles = StyleSheet.create({
 image1: {
   width: 200,
   height: 70,
 },
 image2: {
 width: 100,
 height: 200,
 marginBottom: 100,
},
});

и на экране Screen2.js прописать для компонента
<Logo style={[style.img2]}/>  
так ?
в кратце прокинь пропсами стиль в мейн
источник

AP

Artemka P. in React Native — русскоговорящее сообщество
Maxim 📱 Dzhafarov [R10]
в кратце прокинь пропсами стиль в мейн
мне нужно из Main где изначально определены стили для

const Logo = () => (
 <Image source={require('../assets/logo.png')} style={styles.image} />
);

в Screen2.js

где я использую rjvgjytyn <Logo style={styles.image}/>


"в кратце прокинь пропсами стиль в мейн"

это как? я полный ноль
источник

I

Irakliy in React Native — русскоговорящее сообщество
Artemka P.
Всем привет!
Как переопределить стили компонента (или как оно там называеться) в другом экране, где я его вызыаю ?

у меня есть экран Main.js

const Logo = () => (
 <Image source={require('../assets/logo.png')} style={styles.image} />
);

const styles = StyleSheet.create({
 image: {
   width: 200,
   height: 70,
 },
});

и есть экран Screen2.js где я использую этот компонент

<Logo style={styles.image}/>

const styles = StyleSheet.create({
 image: {
   width: 100,
   height: 200,
   marginBottom: 100,
 },
});

и используя ту же схему у меня не получаеться изменить стили этого компонента <Logo>

Подскажите пожалуйста как мне это сделать ?
const Logo = props => (
 <Image source={require('../assets/logo.png')} style={[styles.image, props.style]} />
);

const styles = StyleSheet.create({
 image: {
   width: 200,
   height: 70,
 },
});
источник

SS

Serhey Shmyg in React Native — русскоговорящее сообщество
именно
источник

M[

Maxim 📱 Dzhafarov [R10] in React Native — русскоговорящее сообщество
Irakliy
const Logo = props => (
 <Image source={require('../assets/logo.png')} style={[styles.image, props.style]} />
);

const styles = StyleSheet.create({
 image: {
   width: 200,
   height: 70,
 },
});
да, я прост занят пока
источник