Я хотел бы иметь возможность получать данные стека (fileName и lineNumber) из объекта Error в React Native.
Если я запускаю что-то вроде этого:
const err = new Error('Message');
console.log(err);
Я получаю полезный вывод в своей консоли, например:
Message
* App.js:21:16 in componentDidMount
- node_modules\react-proxy\modules\createPrototypeProxy.js:61:45 in proxiedComponentDidMount
- node_modules\react-native\Libraries\Renderer\ReactNativeRenderer-dev.js:10627:12 in commitLifeCycles
- ... 23 more stack frames from framework internals
Я хотел бы иметь возможность отправлять эти данные стека в другое место для регистрации и исправления, но я не могу понять, как получить доступ к данным, которые показывают имя файла и строку, в которой возникла ошибка.
Как я могу получить эту информацию?
Согласно документации Ошибка - JavaScript MDN, если я попытаюсь:
console.log(err.fileName)
or:
console.log(err.lineNumber)
Я просто получаю:
undefined
Что подтверждается:
console.log(Object.keys(err));
в результате чего:
Array []
Хотя, загадочно:
console.log(err.message);
все еще возвращает:
Message
Связано - если я ввожу:
console.log(err.toString())
Я получил:
Error: Message
Точно так же, если я ввожу:
console.log('Comment', err);
Я получаю в качестве вывода:
Comment [Error: Message]
Поэтому, хотя я вижу, что данные стека есть, я, похоже, не могу получить к ним доступ или передать их куда-то еще.