小编wm_*_*ndu的帖子

使用Jest测试React Native Application - Jest遇到了意外的令牌

我试图在本机中运行jest测试用例,但总是失败.终端打印此错误" Jest遇到意外令牌 ".我真的很开心,我已经尝试了几个小时来解决这个问题,但找不到办法.请帮我解决这个问题.

这是我的代码: -

import 'react-native';
import React from 'react';
import LoginScreen from '../pages/LoginScreen'

import renderer from 'react-test-renderer';

// snapshot testing
// update snapsshot to use npm test -- -u
// test('MainScreen snapShot', ()=>{
//     const snap = renderer.create(
//         <MainScreen />
//     ).toJSON();
//     expect(snap).toMatchSnapshot();
// });

it('fucntion test', () =>{
    let MainData = renderer.create(<LoginScreen />).getInstance();
    MainData.change(2)

    expect(MainData.change(2)).toEqual(20)
})
Run Code Online (Sandbox Code Playgroud)

Package.json:

{
  "name": "App_name",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": { …
Run Code Online (Sandbox Code Playgroud)

jestjs react-native

6
推荐指数
1
解决办法
1677
查看次数

React Native - 无法捕获硬件后退按钮单击事件

我曾经在Wix中为我的应用程序导航做出反应原生导航.但它不能正常工作.通过我的应用程序验证用户成功导航到主屏幕,但问题是当我按下Android后退按钮时,它将再次导航到登录屏幕.我需要避免这种情况.我该怎么做?最后试图完全退出应用程序.但它也不能正常工作.我尝试了一些解决方案,但这些解决方案对我没用.在这里,我附上了一些我尝试过的解决方案.

试试01:

componentWillUnmount() {
    if (Platform.OS === 'android') return
    BackHandler.removeEventListener('hardwareBackPress')
  }

  componentWillMount() {
    Alert.alert(
      "Warning!",
      "one")
    if (Platform.OS === 'android' && this.props.login)
      BackHandler.addEventListener('hardwareBackPress', () => {
        Alert.alert(
          "Warning!",
          "two")
        return true
      })
  }
Run Code Online (Sandbox Code Playgroud)

尝试01:此功能正常工作,但这不能解决问题.

试试02:

constructor(props) {
super(props);
this.props.navigator.setOnNavigatorEvent(this.onNavigatorEvent.bind(this));
}

onNavigatorEvent(event) {
    switch (event.id) {
        case "willAppear":
            this.backHandler = BackHandler.addEventListener(
            "hardwareBackPress",
            this.handleBackPress,
            Alert.alert(
                event.id,
                "willAppear")
            );
            break;
        case "willDisappear":
            this.backPressed = 0;
            Alert.alert(
              "Warning!",
              "willDisappear")
            this.backHandler.remove();
            break;
          default:
            break;
        }
    }

handleBackPress …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-navigation wix-react-native-navigation

6
推荐指数
0
解决办法
544
查看次数

从状态中删除项目后,Flatlist 不会重新渲染

我正在开发一个反应本机应用程序,

在这个应用程序中,我有一个捕获视图的图像,如果用户捕获图像,它将存储在状态挂钩中,如果存储了某些内容,它将显示在 Flatlist 中。

如果我们认为用户需要从列表中删除某个项目,那么我提供了一个删除按钮。当用户单击它时,应该从状态中删除该项目并更新 Flatlist。

我的问题是:从状态中删除项目后,我的视图不会重新渲染。我可以保证数据已成功从状态中删除,但我的 Flatlist 没有更新。

我的代码如下,请大家帮我解答一下。提前致谢。

下面的代码用于从状态中删除该项目。

const [selectedFiles, setSelectedFiles] = useState([]);

const removeItemFromArray = (index: number) => {
     let imagesArray = selectedFiles;
     imagesArray.splice(index, 1);
     setSelectedFiles(imagesArray);
}
Run Code Online (Sandbox Code Playgroud)

平面列表

<FlatList
 showsHorizontalScrollIndicator={false}
                    data={selectedFiles}
                    renderItem={({ item, index }) => {
                        return (
                            <ImagePreviewSlider
                                itemData={item}
                                viewImage={() => viewImage(index)}
                                deleteItem={() => removeItemFromArray(index)}
                            />
                        );
                    }}
                />
Run Code Online (Sandbox Code Playgroud)

----------完整代码--------------

照片上传.tsx

import React, { useState } from "react";
import {
    View,
    Text,
    StyleSheet,
    ScrollView,
    Image,
    ImageBackground,
    TouchableOpacity,
    Modal,
    FlatList
} from "react-native";
import ImagePicker …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-flatlist flatlist

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

'TextBox'不包含'ID'的定义

我有以下代码在每个按钮单击上创建一个文本框:

private void AddNewTimer_Click(object sender, EventArgs e)
{
    int timerCount = 0;
    int boxY = 0;
    if (timerCount <= 6)
    {
        timerCount++;
        TextBox txt = new TextBox();
        txt.ID = "timer" + timerCount++;
        txt.Text = Convert.ToString(timerCount);
        txt.Name = Convert.ToString(timerCount);
        txt.Width = 63;
        txt.Location = new Point(0, boxY);
        TimerContainer.Controls.Add(txt);
        boxY = boxY + 25;
    }
}
Run Code Online (Sandbox Code Playgroud)

txt.ID = timerCount++;给我'TextBox' does not contain a definition for 'ID',虽然在回答说明这个问题,在这个页面.

c# winforms

0
推荐指数
1
解决办法
133
查看次数