我的 useEffect 中有一个异步请求。我注意到该组件是在 useEffect 完成之前渲染的。
import React, { useEffect } from 'react';
import axios from 'axios';
import './SearchWords.css';
const URL_REQUEST = 'http://myLink.com';
const SearchWords = (props) => {
const { setState } = props;
useEffect(async () => {
const data = {
sentence: props.sentence
};
await axios.post(`${URL_REQUEST}/getData`, { data })
.then((res) => {
setState(state =>({
...state,
search: res.data
}));
})
.catch((err) =>{
console.log(err);
})
}, []);
const render = () => {
if(props.search.length > 0) {
const linkMarkup = props.search.map((link) …Run Code Online (Sandbox Code Playgroud) 我在 React 应用程序中使用 query.dataTable,而我的 IDE(Visual Studio Code)向我表明我不应该使用$(document).ready(function ()
我的代码:
...
import "datatables.net-dt/js/dataTables.dataTables"
import "datatables.net-dt/css/jquery.dataTables.min.css"
...
componentDidMount = async () => {
this.props.onLoadData();
this.setState({ events: this.props.data });
$(document).ready(function () {
$('#myTable').DataTable();
});
}
...
return (
...
<table id="myTable" className="table">
...
Run Code Online (Sandbox Code Playgroud)
为什么IDE会显示它?该代码有效,我想知道为什么它无效。
谢谢
我曾经使用 AppRegistry.registerComponent() 设置我的项目的主文件,但是使用 Expo 创建的项目不支持它。
import { AppRegistry } from 'react-native';
import App from './src/App';
AppRegistry.registerComponent('my App', () => App);
Run Code Online (Sandbox Code Playgroud)
然后,我使用 src/App.js 作为我的主文件。我如何使用世博会做到这一点?
谢谢
如何将ColdFusion日期转换为Unix时间戳?
myDate = DateAdd("m", -1, Now());
Run Code Online (Sandbox Code Playgroud)
我想使用ColdFusion将myDate转换为unix时间戳
谢谢
我正在尝试在 javascript 中实现解码字符串算法。
问题:给定一个编码字符串,返回它的解码字符串。
编码规则是:k[encoded_string],其中方括号内的encoded_string 正好重复k 次。请注意,k 保证为正整数。
您可以假设输入字符串始终有效;没有多余的空格,方括号格式正确等。
此外,您可以假设原始数据不包含任何数字,并且数字仅用于那些重复数字 k。例如,不会有像 3a 或 2[4] 这样的输入。
示例 1:
输入:s = "3[a]2[bc]" 输出:"aaabcbc"
示例 2:
输入:s = "3[a2[c]]" 输出:"accaccacc"
示例 3:
输入:s = "2[abc]3[cd]ef" 输出:"abcabccdcdcdef"
示例 4:
输入:s = "abc3[cd]xyz" 输出:"abccdcdcdxyz"
我的尝试:
var decodeString = function(s) {
if(!s || s.length === 0) return "";
let map = {
'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6,
'7': 7, '8': 8, '9': 9
};
let res = …Run Code Online (Sandbox Code Playgroud) 当我使用 Switch 组件时,我在浏览器控制台中收到此错误。
...
import { Button, Form, FormText, Label, Input } from 'reactstrap';
import { FormGroup, Switch, Radio, FormControlLabel, RadioGroup } from '@material-ui/core';
...
// state variable to keep my Switch values. I grab the values from the database
const [ companySettings, setCompanySettings ] = useState({});
...
// Where I render the Switches
<Form inline>
<div className="row">
<div className="col-sm-12">
<FormGroup row>
<Switch name="escrow" checked={companySettings.payCCFee} onChange={() => setCompanySettings({...companySettings, payCCFee: !companySettings.payCCFee})} aria-label="Company Pay CC Fee" />
<Label for="escrow" className="mr-sm-10">
Company pays …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 react-native-image-picker,但出现错误:NativeModule.ImagePickermanager 为空。
import React, { Component } from 'react';
import { Text, View, StyleSheet, Alert, PixelRatio, Image } from 'react-native';
import ImagePicker from 'react-native-image-picker';
...
handleChoosePhoto = () => {
const options = {
noData: true,
};
ImagePicker.launchImageLibrary(options, response => {
if (response.uri) {
this.setState({ photo: response });
}
});
};
...
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
{this.state.photo && (
<Image
source={{ uri: this.state.photo.uri }}
style={{ width: 300, height: 300 }}
/>
)}
<Button title="Choose …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的本机反应更新为最新版本。我运行命令:react-native upgrade --verbose
但是,它正在返回:
info No version passed. Fetching latest...
info Fetching diff between v0.59.8 and v0.60.5...
error Cannot read property 'toLowerCase' of undefined
debug TypeError: Cannot read property 'toLowerCase' of undefined
at getPatch (/Users/myUser/Documents/React Native/myApp/node_modules/@react-native-community/cli/build/commands/upgrade/upgrade.js:109:121)
at process._tickCallback (internal/process/next_tick.js:68:7)
Run Code Online (Sandbox Code Playgroud)
如何升级本机反应?
我一直在尝试使用 react native 打开一个 pdf 文件,但是我尝试的每个库都会产生一个错误。我试过下面的代码:
import React, { Component } from 'react';
import Pdf from 'react-native-pdf';
class OpenBGReport extends Component {
render() {
const source = {uri:'http://samples.leanpub.com/thereactnativebook-sample.pdf',cache:true};
return (
<View style={styles.container}>
<Pdf
source={source}
onLoadComplete={(numberOfPages,filePath)=>{
console.log(`number of pages: ${numberOfPages}`);
}}
onPageChanged={(page,numberOfPages)=>{
console.log(`current page: ${page}`);
}}
onError={(error)=>{
console.log(error);
}}
style={styles.pdf}/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'flex-start',
alignItems: 'center',
marginTop: 25,
},
pdf: {
flex:1,
width:Dimensions.get('window').width,
height:Dimensions.get('window').height,
}
});
export default OpenBGReport;
Run Code Online (Sandbox Code Playgroud)
但是,安装 react-native-pdf …
我实现了最大的三重产品算法,但我使用了排序,这使我的时间复杂度为 O(nlogn)。有没有办法在没有临时排序数组的情况下实现它?
问题:给定一个包含 n 个整数 arr[0..(n-1)] 的列表。您必须计算一个列表 output[0..(n-1)] ,使得对于每个索引 i(在 0 和 n-1 之间,包括端点),output[i] 等于三个最大元素的乘积arr[0..i](如果 i < 2,则等于 -1,因为 arr[0..i] 然后包含少于三个元素)。请注意,用于形成任何乘积的三个最大元素可能彼此具有相同的值,但它们在 arr 中必须位于不同的索引处。
例子:
var arr_2 = [2, 4, 7, 1, 5, 3];
var expected_2 = [-1, -1, 56, 56, 140, 140];
Run Code Online (Sandbox Code Playgroud)
我的解决方案:
function findMaxProduct(arr) {
// Write your code here
if(!arr || arr.length === 0) return [];
let helper = arr.slice();
helper.sort((a,b)=>a-b); // THIS IS THE SORT
let ans = [];
let prod = 1;
for(let i=0; i<arr.length; i++) …Run Code Online (Sandbox Code Playgroud) react-native ×4
reactjs ×3
expo ×2
javascript ×2
algorithm ×1
arrays ×1
axios ×1
cfml ×1
coldfusion ×1
datatable ×1
jquery ×1
material-ui ×1
pdf ×1
react-hooks ×1