React native React Native-json值';0';无法将nsnumber类型的转换为nsstring
我正在尝试将在我的React应用程序中工作的组件转换为React Native。但是,我在ios模拟器中遇到此错误:nsnumber类型的json值“0”无法转换为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 =
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=()=>
希望这有帮助