小编ota*_*iao的帖子

当组件重新生成时,动态不透明度不会发生变化

我开始学习React Native,对于我的项目,我创建了一个简单的Button组件,可以在我的项目中重用.我根据变量'disabled'动态设置不透明度值,但是,按钮的外观不会随着opacity变量的值而变化.我四处搜索,我没有找到解释..
任何帮助将不胜感激.

这是我的源代码:

import React from 'react'
import { View, Text, TouchableOpacity, StyleSheet } from 'react-native'
import PropTypes from 'prop-types'

//TODO: arrumar o problema com a opacidade
export default function Button({text, onPress, style, disabled, textStyle}) {
    let opacity = disabled === true ? 0.5 : 1
    // console.log('opacity', opacity)
    return (
        <TouchableOpacity onPress={onPress} style={[defaultStyles.button, style, {opacity: opacity}]} 
            disabled={disabled}>
            <Text style={[defaultStyles.text, textStyle]}>{text}</Text>
        </TouchableOpacity>
    )

}

const defaultStyles = StyleSheet.create({
    text: {
        color: 'white'
    },
    button: {
        backgroundColor: 'black',
        margin: 15, …
Run Code Online (Sandbox Code Playgroud)

javascript opacity reactjs react-native touchableopacity

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

在 React Native 中使用 Detox 测试 Picker

我刚刚开始使用 Detox 来测试我的 React Native 应用程序,但在测试 Pickers 时遇到了一些麻烦。我基本上需要能够从选择器中选择一个值!但这似乎不可能!

这是我的选择器:

<Picker
        style={styles.picker}
        itemStyle={styles.pickerItem}
        testID="picker"
        selectedValue={selectedValue}
        onValueChange={this.updateValue}
      >
        <Picker.Item key={0} label="Choose one" value={null} />

        {values.map(value => {
          return (
            <Picker.Item
              key={value}
              label={value}
              value={value}
              testID={value}
            />
          );
        })}
 </Picker>
Run Code Online (Sandbox Code Playgroud)

这是我的测试:

await element(by.type("UIPickerView")).setColumnToValue(0, "Apple");
Run Code Online (Sandbox Code Playgroud)

但我得到的只是一条错误消息,指出无法设置该值,因为它不存在,但它确实存在!因为我现在正在看它!

有谁知道在选择器中设置值的正确方法?

任何帮助都会很棒!

react-native detox

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

在使用 Flutter 进行单元测试期间,对 File 对象的操作从未完成

我正在为我的 Flutter 应用程序编写单元测试,但在读取 json 文件时遇到一些问题。我有一些 json 文件供我的 api 模拟类使用。每当我调用 File 对象上的方法时,它永远不会结束,但测试会继续执行,并以错误结束,因为它没有从文件对象接收数据。这很奇怪,因为只有当从小部件调用的提供程序调用模拟 api 方法时才会发生这种情况。如果我直接调用模拟 api 方法进行测试,则效果很好。\n我的应用程序的结构如下:WidgetScreen调用->提供商调用->mockApi。

\n\n

Widget LegislacaoScreen 从我的提供者调用方法 carregarLegislacao,该方法又从我的 mockApi 调用方法 getLegislacaoes,该方法从 json 文件读取并将结果返回给提供者,然后通知我的小部件。任何帮助表示赞赏。

\n\n

哦,我正在使用以下命令运行测试:flutter test test/my_test.dart

\n\n

这里有一些代码:

\n\n

LegislacaoScreen:

\n\n
class LegislacaoScreen extends StatefulWidget {\n  @override\n  _LegislacaoScreenState createState() => _LegislacaoScreenState();\n}\n\nclass _LegislacaoScreenState extends State<LegislacaoScreen>\n    with AutomaticKeepAliveClientMixin {\n  @override\n  void initState() {\n    super.initState();\n    Future.microtask(carregarDados);\n  }\n\n  @override\n  bool get wantKeepAlive => true;\n\n  Future<void> carregarDados({bool reset = false}) async {\n    try {\n      final legislacaoProvider =\n          Provider.of<LegislacaoProvider>(context, listen: false);\n\n      await legislacaoProvider.carregarLegislacao(\n …
Run Code Online (Sandbox Code Playgroud)

dart dart-io flutter flutter-test

5
推荐指数
0
解决办法
1091
查看次数

在 React 18 中获取数据并将其放入存储的正确方法是什么?

在 React 18 Strict 模式下,useEffect 运行两次,因此在没有解决方法的情况下在 useEffect 中获取数据并不好。我观看了一些视频,阅读了一些文章,说我们不应该在这个钩子中获取数据,但是我还没有看到有关如何正确执行此操作的实际示例。这就是我在 React 17 上的做法:

  • 我有一个 Zustand 商店,它包含将获取数据并在商店中填充我的状态的操作
{
  itens: [],
  loading: false,
  error: null,
  async fetchItens(page: number) {
    try {
      set({
        loading: true,
        error: null
      });

      const { data } = await axios.get(`my-url`);
      set({
       loading: false,
       itens: data,
      })
    } catch(err) {
      set({
        error: "There was an error.",
        loading: false,
      })
    } 
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的组件中,我这样称呼它:

function MyComponent() {
  const itens = useStore(state => state.itens);
  const loading = useStore(state => state.loading);
  const error = …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native react-18

5
推荐指数
0
解决办法
1982
查看次数

处理 React Native 中的字体大小单位(Dp、Sp、px ..)

我开始使用 React Native 进行开发,目前正在构建我的第一个应用程序。我收到了一些 Zepplin 文件,告诉我每个屏幕必须是怎样的(包括一些 android xml 格式的代码),包括字体大小和间距,问题是,它在 DP 中,有时是 SP ..它没有告诉我像素密度或其他任何东西,所以我不能在我的应用程序中使用相同的数字。在这种情况下我该怎么办?在制作 React Native 应用程序时,你们如何处理不同的单位?

这是我必须更改以响应本机代码的代码示例:

<TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textSize="18.7sp"
  android:fontFamily="sans-serif-medium"
  android:textStyle="normal"
  android:textColor="#ffffff"
  android:lineSpacingExtra="-18.7sp"
  tools:text="60"
 />
Run Code Online (Sandbox Code Playgroud)

和:

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="32sp"
android:fontFamily="sans-serif-medium"
android:textStyle="normal"
android:textColor="#70c300"
android:lineSpacingExtra="-32sp"
tools:text="20"
  />
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏

styles font-size react-native

3
推荐指数
2
解决办法
8767
查看次数

键盘在 React Native 博览会上向上推视图

我正在使用 react native 和 Expo 开发一个应用程序,但我在 Android 上遇到了键盘问题。当键盘弹出时,它会将视图向上推太多,导致标题在中间被切掉。在iOS上没问题。我想实现相同的行为..

我查看了文档,但它说 Android 会自动处理它。但它没有这样做:/

这是我的代码:

render() {
    const { erroLogin, logando } = this.props;

    return (
      <ImageBackground style={styles.container} source={backgroundImage}>
        <KeyboardAvoidingView 
          style={styles.keyboardViewContainer} 
          behavior={Platform.OS === 'ios' ? 'padding' : null}
        >
          <Text
            style={{
              fontFamily: 'roboto-bold',
              color: '#ffffff',
              fontSize: 48,
              marginBottom: 20.7 * 3,
            }}
          >
          Balad<Text style={{ fontFamily: 'roboto-light', color: '#ffffff', fontSize: 48 }}>APP</Text>
          </Text>

          <TextInput
            value={this.state.email}
            placeholder="Usuário"
            style={[styles.input, { marginBottom: 4 * 3 }]}
            placeholderTextColor="#828282"
            maxLength={255}
            autoCorrect={false}
            keyboardType="email-address"
            autoCapitalize="none"
            returnKeyType="done"
            underlineColorAndroid="transparent"
            onChangeText={text => this.setState({ …
Run Code Online (Sandbox Code Playgroud)

keyboard react-native react-native-android expo

3
推荐指数
3
解决办法
9426
查看次数