React native “如何修复错误”;无法打开文档,文件似乎已损坏";打开使用react native fs编写的文档时?

React native “如何修复错误”;无法打开文档,文件似乎已损坏";打开使用react native fs编写的文档时?,react-native,react-native-android,react-native-fs,React Native,React Native Android,React Native Fs,我试图使用react native fs将数据写入文档文件,然后使用react native mail包将该文档发送给另一个用户 除了一件事,我已经成功地实现了这一点。当我试图打开文档时,它显示“无法打开文档,文件似乎已损坏”。但是当我尝试以txt格式发送此文件时,我可以打开该文件并查看其内容。为什么我不能复制相同的文档格式。下面是我的代码 if ( permRes["android.permission.READ_EXTERNAL_STORAGE"] ===

我试图使用
react native fs
将数据写入文档文件,然后使用
react native mail
包将该文档发送给另一个用户

除了一件事,我已经成功地实现了这一点。当我试图打开文档时,它显示“无法打开文档,文件似乎已损坏”。但是当我尝试以txt格式发送此文件时,我可以打开该文件并查看其内容。为什么我不能复制相同的文档格式。下面是我的代码

if (
        permRes["android.permission.READ_EXTERNAL_STORAGE"] ===
          PermissionsAndroid.RESULTS.GRANTED &&
        permRes["android.permission.WRITE_EXTERNAL_STORAGE"] ===
          PermissionsAndroid.RESULTS.GRANTED
      ) {
        if (data !== null) {
          data.map(item => {
            var path = RNFS.ExternalStorageDirectoryPath + "/test.doc";
            console.log("pathpath", path);
            RNFS.writeFile(
              path,
              "Project Details\n" +
                "\nProject name: " +
                item.project_name +
                "\nProject Description: " +
                item.project_description +
                "\nClient name: " +
                item.client_name +
                "\nCompany: " +
                item.company +
                "\nPhone number: " +
                item.phone_number +
                "\nEmail: " +
                item.email,
              "utf8"
            )
              .then(success => {
                console.log("FILE WRITTEN");
                Mailer.mail(
                  {
                    subject:
                      Strings.string_rem + " :" + Strings.string_projectDetails,
                    recipients: ["vinaynarayankutty@gmail.com"],
                    body: "<b>This is a test document</b>",
                    isHTML: true,
                    attachment: {
                      path: RNFS.ExternalStorageDirectoryPath + "/test.doc",
                      type: "doc",
                      name: "Project details"
                    }
                  },
                  (error, event) => {
                    Alert.alert(
                      error,
                      event,
                      [
                        {
                          text: "Ok",
                          onPress: () => console.log("OK: Email Error Response")
                        },
                        {
                          text: "Cancel",
                          onPress: () =>
                            console.log("CANCEL: Email Error Response")
                        }
                      ],
                      { cancelable: true }
                    );
                  }
                );
              })
              .catch(err => {
                console.log(err.message);
                alert(err.message);
              });
          });
        }
      }
if(
permRes[“安卓.权限.读取外部存储”]===
许可证和ROID.RESULTS.grated&&
permRes[“android.permission.WRITE\u外部存储”]===
许可证和ROID.RESULTS.grated
) {
如果(数据!==null){
data.map(项=>{
var path=RNFS.ExternalStorageDirectoryPath+“/test.doc”;
log(“路径”,路径);
RNFS.writeFile(
路径
“项目详细信息\n”+
“\n项目名称:”+
项目名称+
“\n项目描述:”+
项目描述+
“\n客户端名称:”+
item.client\u名称+
“\n公司:”+
项目公司+
“\n电话号码:”+
项目.电话号码+
“\n邮件:”+
item.email,
“utf8”
)
。然后(成功=>{
console.log(“文件写入”);
邮件(
{
主题:
Strings.string_rem+“:“+Strings.string_项目详细信息,
收件人:[”vinaynarayankutty@gmail.com"],
正文:“这是一份测试文件”,
伊什特尔:没错,
附件:{
路径:RNFS.ExternalStorageDirectoryPath+“/test.doc”,
键入:“doc”,
名称:“项目详情”
}
},
(错误、事件)=>{
警惕,警惕(
错误,
事件
[
{
文字:“Ok”,
onPress:()=>console.log(“确定:电子邮件错误响应”)
},
{
文本:“取消”,
onPress:()=>
日志(“取消:电子邮件错误响应”)
}
],
{可取消:true}
);
}
);
})
.catch(错误=>{
控制台日志(错误消息);
警报(错误消息);
});
});
}
}