我正在使用一个基于flutter_audio_recorder
的playerWidget。尽管它按要求工作,但在编译和热重启时,我会收到一个令人讨厌的错误消息,因为路径一开始是空的。路径为null,因为尚未加载任何音频文件。但是,一旦我使用的PageView.builder
完成,就会加载音频,因此错误消息对实际操作没有影响。然而,错误消息变得令人讨厌。所以我想从我的服务器提供一个默认的音频文件,这样错误就会停止。
错误信息显示
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building SpeakRecorder(dirty, dependencies: [_InheritedProviderScope<SocialProvider>], state: SpeakRecorderState#5e63d):
The getter 'path' was called on null.
Receiver: null
Tried calling: path
而调用错误的Widget是;
child: PlayerWidget(url: _current.path),
我尝试了以下内容;
String defaultaudio = _current.path ?? 'http://example.com/ping.m4a';
但它没有解决路径为null的错误。有人看到我做错了什么吗?
在null上调用了getter"path"。
此错误表示要为其写入object.path
的对象是null
。您可以像这样使用?.
运算符:object?.something
,相当于:
object!=null ? object.something : null
您可以将它与您已经在做的??
运算符配对。因此,您只需将您的声明更改为:
String defaultaudio = _current?.path ?? 'http://example.com/ping.m4a';