反应本机 - 'target. value not working on mobile'
React Native - 'target. value not working on mobile'
大家好,
我对这个应该存储和显示数据的小应用程序有一个小问题:https://snack.expo.dev/@vevlex/nullnotanobject
当我在 ipad 上从我的电脑直接测试(我在我的 cmd window 中扫描 QR 代码)时,应用程序可以正常启动,但是当重新 运行打开应用程序或将工作发送给另一个应用程序时window(检查工作后显示在右侧的“待办事项”按钮)。
当我从 Expo 运行 它时,我得到这个错误:null is not an object (evaluating 'jobs.map'
所以我假设我在保存/加载时做错了,或者在实际编写地图时做错了,但我不确定,而且我不知道如何自己解决这个问题。
谁能帮帮我?
请谢谢。
Update: var temp1 is not being set, as the alert here returns "Unidentified" even tho I just define it in the previous line. This only happens on iOS and android, it works fine on the web sim. Can anyone explain this?
<TextInput
style={s.jobInput}
onChange={(e) => {
var temp1 = e.target.value;
alert(temp1)
setJobs((currentJobs) =>
produce(currentJobs, (v) => {
v[index].address = temp1;
})
);
saveItem();
}}
value={j.address}
placeholder="Address"
/>
您在 loadItem
中有以下代码。
const jsonValue = await AsyncStorage.getItem("@jobs");
const temp1 = JSON.parse(jsonValue);
setJobs(temp1);
对 AsyncStorage.getItem
的调用返回 null
,您将其设置为状态变量,这就是您在尝试 .map()
时收到错误的原因不再是数组的值,而是 null
.
如果此行为是有意为之,您只需在 jobs
后添加一个问号即可解决此问题。您可以阅读更多相关信息 here。
jobs?.map((j, index)
好的,在了解我在更新中所说的内容后,我进行了更多搜索,发现在移动设备上您应该使用 onChangeText
而不仅仅是 onChange
.
大家好,
我对这个应该存储和显示数据的小应用程序有一个小问题:https://snack.expo.dev/@vevlex/nullnotanobject
当我在 ipad 上从我的电脑直接测试(我在我的 cmd window 中扫描 QR 代码)时,应用程序可以正常启动,但是当重新 运行打开应用程序或将工作发送给另一个应用程序时window(检查工作后显示在右侧的“待办事项”按钮)。
当我从 Expo 运行 它时,我得到这个错误:null is not an object (evaluating 'jobs.map'
所以我假设我在保存/加载时做错了,或者在实际编写地图时做错了,但我不确定,而且我不知道如何自己解决这个问题。
谁能帮帮我? 请谢谢。
Update: var temp1 is not being set, as the alert here returns "Unidentified" even tho I just define it in the previous line. This only happens on iOS and android, it works fine on the web sim. Can anyone explain this?
<TextInput
style={s.jobInput}
onChange={(e) => {
var temp1 = e.target.value;
alert(temp1)
setJobs((currentJobs) =>
produce(currentJobs, (v) => {
v[index].address = temp1;
})
);
saveItem();
}}
value={j.address}
placeholder="Address"
/>
您在 loadItem
中有以下代码。
const jsonValue = await AsyncStorage.getItem("@jobs");
const temp1 = JSON.parse(jsonValue);
setJobs(temp1);
对 AsyncStorage.getItem
的调用返回 null
,您将其设置为状态变量,这就是您在尝试 .map()
时收到错误的原因不再是数组的值,而是 null
.
如果此行为是有意为之,您只需在 jobs
后添加一个问号即可解决此问题。您可以阅读更多相关信息 here。
jobs?.map((j, index)
好的,在了解我在更新中所说的内容后,我进行了更多搜索,发现在移动设备上您应该使用 onChangeText
而不仅仅是 onChange
.