質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

Q&A

解決済

1回答

1054閲覧

【Failed to schedule notification】React, expoのNotificationをstateで設定しています。

ok09

総合スコア11

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

0グッド

0クリップ

投稿2020/10/24 01:42

Expoで通知アプリを作っています。
triggerで毎週9時3分に通知をする設定で、曜日を数字でtextinputで入力できるようにしたいのですが、以下のエラーが発生しました。

イメージ説明

実現したいこと

TextInput で入力した曜日に、プッシュ通知が起こるようにさせたいです。
初心者で申し訳ないですが、ご教示いただけますと幸いです!よろしくお願いします!

以下、HomeScreen全文です。

ReactNative

1import { StatusBar } from 'expo-status-bar'; 2import React, { useState } from 'react'; 3import GomiList from "../components/GomiList"; 4import { Text, View, StyleSheet, TextInput } from 'react-native'; 5import * as Notifications from 'expo-notifications'; 6 7Notifications.setNotificationHandler({ 8 handleNotification: async () => ({ 9 shouldShowAlert: true, 10 shouldPlaySound: false, 11 shouldSetBadge: false, 12 }), 13}); 14 15export default function HomeScreen() { 16const [number, onChangeText] = React.useState('0'); 17 18const content = { 19 title: 'ゴミ出しの時間です!', 20} 21const trigger = { 22 repeats : true, 23 hour: 9, 24 minute: 3, 25 weekday: number, 26} 27 28Notifications.scheduleNotificationAsync({ 29 content: content, 30 trigger: trigger, 31}); 32 33 return ( 34 <View style={styles.container}> 35 <View style={styles.GomiList}> 36 <GomiList title="燃えるごみ"/> 37 </View> 38 <View style={styles.GomiList}> 39 <GomiList title="燃えないごみ"/> 40 </View> 41 <View style={styles.input}> 42 <TextInput 43 onChangeText={text => onChangeText(text)} 44 value={number} 45 style={styles.textInput} 46 /> 47 </View> 48 </View> 49 ); 50} 51 52const styles = StyleSheet.create({ 53 container: { 54 flex: 1, 55 width: '100%', 56 backgroundColor: '#fff', 57 }, 58 GomiList: { 59 paddingTop: 20, 60 alignItems: 'center', 61 }, 62 input: { 63 top: 100, 64 width:'100%', 65 justifyContent: 'center', 66 alignItems: 'center', 67 }, 68 textInput: { 69 width:'80%', 70 height: 100, 71 justifyContent: 'center', 72 alignItems: 'center', 73 borderTopWidth: 1, 74 borderBottomWidth: 1, 75 borderLeftWidth: 1, 76 borderRightWidth: 1, 77 fontSize: 25, 78 }, 79 80}); 81

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラーを見ると、「string型ではなくnumber型を渡してください」と言われている気がします。
ステートの初期化はnumber型でしてみてください。

const [number, onChangeText] = React.useState('0'); // string('0')ではなくnumber(0)
const content = { title: 'ゴミ出しの時間です!', } const trigger = { repeats : true, hour: 9, minute: 3, weekday: number, // ここにnumber型のデータがはいらないとエラーが起きる。 }

投稿2020/10/24 13:56

yuxki

総合スコア110

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ok09

2020/10/27 23:56

ご回答ありがとうございます。 textInputとの相性がよくないのか、どうやってもエラーが出るので別の方針で書くことにしました。 非常に助かりましたので、ベストアンサーにさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問