我有一个尝试进行以下更新的变异器:
state.forms[1].data.metrics.push(newArrayItem)
forms1是一个作为键的对象metrics是一个数组由于某种原因,Vuex 成功更新,但组件不会对此更改做出反应。Vue.set()我在https://v2.vuejs.org/v2/guide/list.html#Object-Change-Detection-Caveats上阅读有关内容
但我不确定如何应用它,或者即使它是正确的答案。
谢谢您的帮助。
this.$forceUpdate正在工作,这有点奇怪,因为加载数据的组件使用computed属性。
表单状态最初设置如下:
const state = {
forms: {}
};
Run Code Online (Sandbox Code Playgroud)
新表单的推送方式如下:
state.forms[id] = { formName: payload.formName, data: {metrics: []}};
Run Code Online (Sandbox Code Playgroud)
并添加新的指标,如下所示:
var result = getParent(state, payload.path);
result.metricParent.data.metrics.push({ id: newMetricId(state, result.formId), ...payload.metric });
Run Code Online (Sandbox Code Playgroud) 我在使用 Google Drive REST v3 android API 时遇到问题。OAuth 令牌获得 BAD_AUTHENTICATION 结果。这是我正在使用的连接代码。还可以注意到 OAuth 同意屏幕没有出现,在很短的一段时间后,我得到了 BAD_AUTHENTICATION 结果。我是否需要手动将刷新令牌传递给服务器或其他什么?
// Gather credentials
credential = GoogleAccountCredential.usingOAuth2(getApplicationContext(), Arrays.asList(SCOPES)).setBackOff(new ExponentialBackOff());
SharedPreferences settings = getSharedPreferences("Roblu", Context.MODE_PRIVATE);
String accountName = settings.getString("accountName", "");
credential.setSelectedAccountName(accountName);
// Start Google services
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
service = new com.google.api.services.drive.Drive.Builder(transport, jsonFactory, credential).setApplicationName("Roblu").build();
Run Code Online (Sandbox Code Playgroud)
这是结果代码:
08-15 14:11:27.621 4929-15182/? E/Auth: [GoogleAccountDataServiceImpl] getToken() -> BAD_AUTHENTICATION. Account: <ELLIDED:-238957088>, App: com.google.android.gms, Service: oauth2:https://www.googleapis.com/auth/games
dkq: Long live credential not available.
at dkr.a(:com.google.android.gms:3101)
at dje.a(:com.google.android.gms:397)
at djd.a(:com.google.android.gms:31369)
at …Run Code Online (Sandbox Code Playgroud)