小编use*_*348的帖子

在React Native函数中创建Alert对话框?

在我的React-native应用程序中,我有一个屏幕,当用户按下按钮提交答案时,我想要一个警告对话框,告诉他们答案是正确还是不正确.所以,我onPressTouchableHighlight按钮的方法中调用一个函数,在该函数中我指定了警告对话框.但是,这会导致"警报"对话框一遍又一遍地重新出现,因为在每个帧中连续调用该函数.如何让函数只被调用一次?

相关代码:渲染功能

render: function() {                    
    return (
        <View style={styles.container}>
            <Text style={styles.title}>{this.state.title}</Text>
            <TouchableHighlight style = {styles.button}
                    onPress={this.onSubmitPressed()}
                    underlayColor='#99d9f4'>
                    <Text style = {styles.buttonText}>SUBMIT</Text>
            </TouchableHighlight>
        </View>
    );
},
Run Code Online (Sandbox Code Playgroud)

验证功能:

onSubmitPressed: function() {
    if (this.checkSolution) {
        Alert.alert(
            'Alert title',
            "Correct!"
        );
    }
    else {
        Alert.alert(
            'Alert title',
            "Incorrect!"
        );
    }
},
Run Code Online (Sandbox Code Playgroud)

alert dialog ios reactjs react-native

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

流:对象类型与Array &lt;mixed&gt;不兼容

我不明白我当前遇到的流程错误。我有一个Javascript对象object(dataObject),我想将其转换为对象数组,因此可以使用Object.values(dataObject)。然后,我使用以下方法遍历数组中的每个对象:

  const dataObjectArray = Object.values(dataObject);
  return dataObjectArray((data: DataObject) => {
    const { typeA, typeB } = data;
    return {
      TYPE_A: typeA,
      TYPE_B: typeB,
    };
  });
Run Code Online (Sandbox Code Playgroud)

但是我收到以下流类型错误:

流量误差

我不确定如何匹配类型。目前,我的DataObject流类型是

type DataObject = {
    typeA: string,
    typeB: string,
};
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。谢谢!

javascript flowtype flow-typed

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

从 python 中的点表示法字符串设置嵌套对象属性

I\xe2\x80\x99m 编写一个函数,该函数接受父对象data和一个字符串inputString,该字符串可能包含也可能不包含点符号来表示嵌套对象(即 \xe2\x80\x98nestedObject.itemA)。该函数应将inputString的属性设置data为随机字符串。如果字符串inputString是嵌套对象,则该函数应将nested object\xe2\x80\x99s 值设置为随机字符串。我可以\xe2\x80\x99t弄清楚如何在for循环中处理这一切。我想做这样的事情:

\n\n
split_objects = value.split(\xe2\x80\x9c.\xe2\x80\x9d)\nfor item in split_objects:\n    data.__setattr__(item, get_random_string())\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,对于嵌套对象,上面的代码会将嵌套对象设置为随机字符串,而不是内部的字段。有人可以帮助我处理这两种情况的语法吗?预先感谢\xe2\x80\xa6

\n

python split for-loop nested

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

React-native阻止函数异步执行?

单击我的react Native应用程序中的按钮后,我调用两个函数:getSolutionListFromDatabase,它设置组件的状态以包含此解决方案列表,然后updateDatabaseSolutionList,它将一个元素添加到此列表并将其推送回Firebase.但是,尽管在第一个函数中正在更新应用程序的状态,但在第二个函数中,状态被记录为未定义,并且在第一个函数中的某些语句之前调用了该函数的日志语句.这些函数是出于某种原因而异步运行的,这是React native的一个特性吗?如果是这样,如何在设置状态之前阻止第二个函数执行?谢谢.

onSubmitPressed: function() {
    if (this.checkSolution) {
        this.getSolutionListFromDatabase();
        this.updateDatabaseSolutionList();
        Alert.alert(
            'Correct!',
            "Woohoo!"
        );
    }
},

getSolutionListFromDatabase: function() {
    var thisItemRef = itemsListRef.child(this.state.itemID);
    thisItemRef.once('value', (snap) => {
        var solutionList = snap.val();
        this.setState({
            solutionList: solutionList
        });
        console.log('solution is set as' + this.state.solutionList);
    });
},

updateDatabaseSolutionList: function() {
    var newSolutionList = [];
    console.log('solutionList undefined here' + this.state.solutionList);

    if (this.state.solutionList) {
        newSolutionList = this.state.solutionList;
        newSolutionList.push(this.props.itemID);
    }

    //then push new list to Firebase
},
Run Code Online (Sandbox Code Playgroud)

ios firebase reactjs react-native firebase-realtime-database

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