我的情况是当我从其他来源接收数据作为 JSON 字符串时,然后我想将此字符串上传到 Google Cloud Storage,而不将此字符串写入本地文件并上传此文件。有没有办法做到这一点。谢谢你。看起来像下面的这段代码
storage
.bucket(bucketName)
.upload(jsonString, { destination: 'folder/test.json' })
.then(() => {
console.log('success');
})
.catch((err) => {
console.error('ERROR:', err);
});
Run Code Online (Sandbox Code Playgroud)
所以我预计谷歌云存储会有一个文件 test.json 包含来自 jsonString 的内容
我有下面的示例代码:
function App() {
console.log("render");
const [val, setVal] = React.useState(0);
return (
<div className="App">
<h1>{val}</h1>
<button onClick={() => setVal(12)}>Update with same value</button>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
当我多次单击一个按钮时,控制台会记录 3 次并显示“渲染”消息。对我来说,它应该只有 2 次:
1 用于第一次渲染
2 用于从 val 0 到 12 的更新(单击按钮时)
从这一次开始,它不应重新渲染,因为相同的值 (12) 已更新为 val。
但是为什么会出现3次呢?这意味着尽管更新了相同的值,它仍然会重新渲染一次。
哪位知道的请解释一下,先谢谢了。
P/S:我发现它只会在值改变时导致额外的重新渲染,然后用相同的值更新
function App() {
console.log("render");
const [val, setVal] = useState(4);
return (
<div className="App">
<h1>{val}</h1>
<button onClick={() => {
setVal(val => val + 1)
}}>Update</button>
<button onClick={() => {
setVal(val => val)
}}>Update with same …Run Code Online (Sandbox Code Playgroud) 我有一个问题,即直接从商店使用getState或使用mapStateToProps有什么区别.请看下面的例子
import React, { Component } from 'react'
import store from '../store'
import { connect } from 'react-redux';
class Test extends Component {
constructor(props) {
super(props);
}
render() {
return (
<p>
<h1>{this.props.count}</h1>
<h2>{store.getState().reducer1.count}</h2>
</p>
)
}
}
const mapStateToProps = (state) => ({
count: state.reducer1.count
});
// export default Test;
export default connect(mapStateToProps)(Test);
Run Code Online (Sandbox Code Playgroud)
无论store.getState和mapStateToProps以上工作正常,但它仍然更新时的状态变化.如果我们只使用getState,我们不需要使用connect方法.
我已经认识到的另一点是当使用带有connect的mapStateToProps时,在reducer中我们必须返回一个对象状态的新副本,而不是通过修改返回该状态.如果不是,则状态更改时组件不会更新.像这样:
return Object.assign({}, state, {
count: state.count + 1,
payload: action.payload,
});
Run Code Online (Sandbox Code Playgroud)
但是如果我们使用store.getState(),我们可以返回一个新副本或修改过的副本.像这样:
state.count++; …Run Code Online (Sandbox Code Playgroud) 我是 TypeScript 的新手。我目前正在学习使用 Typescript 语言的 NodeJS Loopback 4框架。我的问题是如何将在 JS 文件中导出的一些函数、类导入到我的 TS 文件中。经过多种方式搜索后,它仍然对我不起作用。下面是例子:
// /src/index.ts
import {plus} from './lib/test';
console.log(plus(1,2));
Run Code Online (Sandbox Code Playgroud)
// /src/lib/test.js
export function plus(x, y) {
return x + y;
}
Run Code Online (Sandbox Code Playgroud)
我也尝试使用这样的定义打字稿
// /src/lib/test.d.ts
export declare function plus(x: number, y: number): number;
Run Code Online (Sandbox Code Playgroud)
但是在 index.ts 文件中导入这个函数时仍然出错
错误:在 Function.Module._resolveFilename (module.js:543:15) 中找不到模块“./lib/test”
我有一个带有数据表的路由页面,在组件安装时获取数据。当我多次单击同一个 react-router-dom 链接(到上面的路由)时,似乎只有在路由更改时才卸载组件(要渲染不同的组件)。
我希望再次单击同一链接时强制重新安装组件以获取新数据。react-router-dom Link 或任何其他 Link 组件中是否有任何选项或任何技巧可以做到这一点?
我的示例代码在这里:https : //codesandbox.io/s/react-router-9wrkz
我希望多次单击“关于”链接时“关于”组件将重新安装
我正在使用 npm package material-datatable serverSide true 因为所有操作发生(搜索、排序、过滤...)将导致从服务器获取数据。
一切都很好,但内置搜索。我想禁用内置搜索功能,因为当表搜索事件触发时,它已经从服务器获取了搜索到的数据,并且表应该只显示它(我不想再次对此数据进行任何本地搜索)。但是经过一段时间的研究,我仍然找不到禁用内置搜索的方法。
有知道的请解释一下,谢谢。
reactjs ×4
javascript ×3
frontend ×2
node.js ×2
datatable ×1
datatables ×1
import ×1
json ×1
loopbackjs ×1
material-ui ×1
react-hooks ×1
react-router ×1
redux ×1
storage ×1
typescript ×1