Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native React Native-json值';0';无法将nsnumber类型的转换为nsstring_React Native - Fatal编程技术网

React native React Native-json值';0';无法将nsnumber类型的转换为nsstring

React native React Native-json值';0';无法将nsnumber类型的转换为nsstring,react-native,React Native,我正在尝试将在我的React应用程序中工作的组件转换为React Native。但是,我在ios模拟器中遇到此错误:nsnumber类型的json值“0”无法转换为nsstring“以前有人遇到过此错误吗?”?这似乎与其他人的造型有关。但我还没有设计好。 如果您需要更多信息,请告诉我,谢谢 import React from 'react'; import { Text, View, Button, Picker } from 'react-native'; const baseMin =

我正在尝试将在我的React应用程序中工作的组件转换为React Native。但是,我在ios模拟器中遇到此错误:nsnumber类型的json值“0”无法转换为nsstring“以前有人遇到过此错误吗?”?这似乎与其他人的造型有关。但我还没有设计好。 如果您需要更多信息,请告诉我,谢谢

import React from 'react';
import { Text, View, Button, Picker } from 'react-native';


const baseMin = [];
for (var i=0; i <= 60; i++) {
    baseMin.push(i);
}

const baseSec = [];
for (var i=0; i <= 60; i++) {
    baseSec.push(i);
}

const displayMinutes = baseMin.map((minute) => 
    <Picker.Item key={minute.toString()} value={minute} label={minute} />
)

const displaySeconds = baseSec.map((second) => 
    <Picker.Item key={second.toString()} value={second} label={second} />
)


class RandomTimer extends React.Component {
    state = { 
            baseMinutes: 0, 
            baseSeconds: 0, 
            varMinutes: 0, 
            varSeconds: 0,
            minutes: 0,
            seconds: 0,
            random: 0
        };

    generate() {


        var min = (this.state.baseSeconds) - (this.state.varSeconds);

        var max = (parseInt(this.state.varSeconds)) + (parseInt(this.state.baseSeconds));

        const randomInt = Math.floor(Math.random() * (max - min + 1) + min);
        this.setState({ random: randomInt });
        this.reset();

    }

    go() {

        this.timer = setInterval(() => {

            if (this.state.seconds == this.state.random) {
                clearInterval(this.timer);

            } else {
                this.setState({ seconds: this.state.seconds + 1 })

            }
        }, 1000)
    }

    stop = () => {
        clearInterval(this.timer);
     }

     reset = () => {
         this.setState({ minutes: 0, seconds: 0 })
         this.stop();
     }

    render() {

        const varMin = [];
        for (var i=0; i <= this.state.baseMinutes; i++) {
            varMin.push(i);
        }
        const displayBaseMin = varMin.map((minute) => 
            <Picker.Item key={minute.toString()} value={minute} label={minute} />
        )

        const varSec = [];
        for (var i=0; i <= this.state.baseSeconds; i++) {
            varSec.push(i);
        }
        const displayBaseSec = varSec.map((second) =>
            <Picker.Item key={second.toString()} value={second} label={second} />
        )

        const { baseMinutes, baseSeconds, varMinutes, varSeconds, minutes, seconds } = this.state;

        return (
            <View>
                <Text>settings</Text>

                <Picker onValueChange={
                    (itemValue) => this.setState({
                        baseSeconds: itemValue
                    })} selectedValue={baseMinutes}>
                    {displayMinutes}
                </Picker>

                <Text>:</Text>

                <Picker onValueChange={
                    (itemValue) => this.setState({
                        baseSeconds: itemValue
                    })} selectedValue={baseSeconds}>
                    {displaySeconds}
                </Picker>

                <Text>VarTime +-</Text>
                <Picker onValueChange={
                    (itemValue) => this.setState({
                        baseSeconds: itemValue
                    })} selectedValue={varMinutes}>
                    {displayBaseMin}
                </Picker>
                <Text>:</Text>
                <Picker onValueChange={
                    (itemValue) => this.setState({
                        baseSeconds: itemValue
                    })} selectedValue={varSeconds}>
                    {displayBaseSec}
                </Picker>
               <Button onPress={this.generate} title='new' />

               <Text>Timer</Text>

                <Text>{minutes}:{seconds}</Text>


                <View>
                    <Button onPress={this.go} title='go' />
                    <Button onPress={this.stop} title='stop' />
                    <Button onPress={this.reset} title='reset' />
                </View>

            </View>
        )
    }
}

export default RandomTimer;
从“React”导入React;
从“react native”导入{文本、视图、按钮、选择器};
常量baseMin=[];
对于(var i=0;i
)
类RandomTimer扩展React.Component{
状态={
基本分钟数:0,
基准秒:0,
分钟:0,,
秒:0,
分钟:0,
秒:0,
随机:0
};
生成(){
var min=(this.state.baseSeconds)-(this.state.varSeconds);
var max=(parseInt(this.state.varSeconds))+(parseInt(this.state.baseSeconds));
const randomInt=Math.floor(Math.random()*(max-min+1)+min);
this.setState({random:randomInt});
这是reset();
}
go(){
this.timer=setInterval(()=>{
if(this.state.seconds==this.state.random){
clearInterval(这个计时器);
}否则{
this.setState({seconds:this.state.seconds+1})
}
}, 1000)
}
停止=()=>{
clearInterval(这个计时器);
}
重置=()=>{
this.setState({分钟:0,秒:0})
这个。停止();
}
render(){
常数varMin=[];
对于(var i=0;i
)
常数varSec=[];
对于(var i=0;i
)
const{baseMinutes,baseSeconds,varMinutes,varSeconds,minutes,seconds}=this.state;
返回(
设置
这是我的国家({
baseSeconds:itemValue
})}selectedValue={baseMinutes}>
{displayMinutes}
:
这是我的国家({
baseSeconds:itemValue
})}selectedValue={baseSeconds}>
{displaySeconds}
瓦泰姆+-
这是我的国家({
baseSeconds:itemValue
})}selectedValue={varMinutes}>
{displayBaseMin}
:
这是我的国家({
baseSeconds:itemValue
})}selectedValue={varSeconds}>
{displayBaseSec}
计时器
{分钟}:{秒}
)
}
}
导出默认随机定时器;

唯一的错误是选择器标签应该是一个字符串,但如果您要传递一个数字,只需将
{minute}
替换为
{minute.toString()}
{second}
替换为
{second.toString}
,您需要在每个使用位置都更改这个标签

并将
go()
更改为
go=()=>
generate()
更改为
generate=()=>


希望这有帮助

唯一的错误是选择器标签应该是一个字符串,但如果您要传递一个数字,只需将
{minute}
替换为
{minute.toString()}
{second}
替换为
{second.toString()}
,您需要在每次使用时都更改此标签

并将
go()
更改为
go=()=>
generate()
更改为
generate=()=>

希望这有帮助