小编Adr*_*mew的帖子

如何通过更改 useState 来测试 React Hooks 组件

我有一个 React hooks 功能组件,我想用 Jest/Enzyme 测试它。我想根据 useState 值测试其第三级渲染行为。我似乎无法在网上找到任何示例。没有“点击”来模拟 - 没有 API 调用模拟,因为最后,我仍然需要根据 useState 值进行测试。过去,使用类组件,我可以设置状态。有了新的钩子,我就不能了。那么,基本上 - 如何在模拟的 SubmitForm 函数中模拟异步等待,以便渲染行为正常?

这是我的组件:

import React, { useState } from 'react';
import { Redirect } from 'react-router-dom';

import Form from 'core/Form';

export const Parent = ({submitForm}) => {
  const [formValues, setFormValues] = useState({});
  const [redirect, setRedirect] = useState(false);

  const handleChange = name => evt => {
    setFormValues({ ...formValues, [name]: evt.target.value });
  };

  const onSubmit = async () => {
      try {
        const res = await …
Run Code Online (Sandbox Code Playgroud)

unit-testing reactjs jestjs enzyme react-hooks

14
推荐指数
1
解决办法
7万
查看次数

在 React Native Paper 中更改 TextInput 的文本颜色

如何在 React Native Paper 中更改 TextInput 的文本颜色而不用在 PaperProvider 中换行?

目前这有效:

const theme = {
  ...DefaultTheme,
  colors: {
    ...DefaultTheme.colors,
    text: "orange",
  }
};

<PaperProvider theme={theme}>
  <TargetComponent />
</PaperProvider>
Run Code Online (Sandbox Code Playgroud)

但是我想通过从父组件传递的道具来控制文本颜色。奇怪的是,传球backgroundColor有效但color无效。

去除PaperProvider包装也无济于事。

这是 TargetComponent 中的相关代码:

return (
    <View style={styles.container}>
      <TextInput
        type="outlined"
        style={this.props.style}
        onChangeText={this.props.onChange}
        label={this.props.label}
        value={this.props.value || "Replace this text"}
        placeholder={this.props.placeholder}
      />
    </View>
)
Run Code Online (Sandbox Code Playgroud)

this.props.style 是:

{
    color: "orange", // This does not work
    backgroundColor: "transparent" // This works
},
Run Code Online (Sandbox Code Playgroud)

react-native react-native-paper

11
推荐指数
2
解决办法
2万
查看次数

数组更改侦听器

可能重复:
Javascript - 如何扩展Array.prototype.push()?

如何通知(运行预定义的函数)对已注册数组的任何更改(或至少添加或删除元素)?我尝试过使用原型.我不想因为没有提供我自己的一些代码示例而被责骂.因此,这里是我怎么会喜欢使用它.

var myArray = [];
myArray.bind(function() {
    console.log('wtf'); // Wed Thu Fri and what were you thinking?
});
Run Code Online (Sandbox Code Playgroud)

我不需要矫枉过正.我基本上知道我将使用的Array函数范围(push,pop,splice以及其他几个).这是使用骨干MVC的一种方式.我想在数组上运行逻辑,然后相应地突出显示视图.但该视图已附加到集合中.对该集合的任何更改都会在视图中重新呈现实际的DOM.我不希望这样.我想简单地想要在视图中为CSS添加或删除类到相应的DOM.

javascript arrays listener extending

9
推荐指数
1
解决办法
1万
查看次数

如何在Netsuite的Suitescript中按内部ID搜索记录?

我正在尝试使用他们的Suitescript API在Netsuite中按库存项目类别进行搜索.以下代码按预期工作,因此我知道我已成功进行远程通信.但我很难过如何按类别搜索.

function NSTest() {
    var items = [];

    var filters = [
        //new nlobjSearchFilter('price',null,'lessthan','20'),
        new nlobjSearchFilter('thumbnailurl',null,'isnotempty')
        //new nlobjSearchFilter('internalid',null,'is','60635')
        ];

    var columns = [
        new nlobjSearchColumn('itemid'),
        new nlobjSearchColumn('salesdescription'),
        new nlobjSearchColumn('storedisplaythumbnail'),
        new nlobjSearchColumn('baseprice')
        ];

    var results = nlapiSearchRecord('inventoryitemdetail',null,filters,columns);
    for(var i=0,l=results.length; i < l; i++) { 
        var result = results[i];
        var price   = result.getValue('baseprice');
        var thumbImage  = result.getText('storedisplaythumbnail');
        var desc    = result.getValue('salesdescription');
        var name    = result.getValue('itemid');
        var img   = 'http://shopping.netsuite.com'+thumbImage;
        var item = {desc:desc, price:price, name:name, img:img};
        items.push(item);
    }
    response.write(JSON.stringify(items));
}
Run Code Online (Sandbox Code Playgroud)

这可以正常工作,但如果我取消注释该行: …

netsuite

5
推荐指数
1
解决办法
1万
查看次数

Laravel Form在提交时运行JS功能

我有一个我要为Ajax提交Laravel表单时要调用的函数。如果页面无法提交和重新加载,我该如何处理?

这有效:(但Enter btn不会执行)

<?php echo Form::open(); ?>
    <?php echo Form::button('Search', array('id'=>'searchbtn', 'class'=>'button radius right', 'onclick'=>'myFunction(this.form)')); ?>
<?php echo Form::close(); ?>
Run Code Online (Sandbox Code Playgroud)

这不是:

<?php echo Form::open(array('onsubmit' => 'myFunction(this)')); ?>
    <?php echo Form::submit('Search', null, array('id'=>'searchbtn', 'class'=>'button radius right')); ?>
<?php echo Form::close(); ?>
Run Code Online (Sandbox Code Playgroud)

javascript forms laravel laravel-4

5
推荐指数
1
解决办法
1万
查看次数

如何在Backbone-Forms中使用JQuery Datepicker?

var User = Backbone.Model.extend({
    schema: {
        date: {type: 'Date'}
    }
});

var user = new User();

var form = new Backbone.Form({
    model: user
}).render();

$('.bootstrap').append(form.el);
Run Code Online (Sandbox Code Playgroud)

我输入什么类型来使用包含的JQuery-UI datepicker?除此之外没有其他文件:

旧的jQuery编辑器仍然包含在内,但可能会被移动到另一个存储库:

jqueryui.List
jqueryui.Date(使用jQuery UI弹出日期选择器)
jqueryui.DateTime

模式类型用引号声明,我无法弄清楚jqueryui.Date的字符串是什么 - 而且这不能确定.

backbone.js backbone-forms

4
推荐指数
1
解决办法
5226
查看次数

MUI:覆盖幻灯片过渡组件中的缓动/计时功能

如何向 Material-UISlide组件添加缓动?我没有看到允许这样做的道具。但我在某处读到过一些关于传播道具的内容?

<Slide
  in={variable}
  timeout={500}
  direction="right"
  mountOnEnter={true}
  unmountOnExit={true}
>
    <Child />
</Slide>
Run Code Online (Sandbox Code Playgroud)

reactjs material-ui

4
推荐指数
1
解决办法
5775
查看次数

如何从图像资源获取图像数据?

我正在使用Microsoft Azure云,需要在那里上传图像。它的类上载方法putBlob()和putBlobData()需要数据本身(不是资源)或目录字符串作为参数,在将图像实际写入Blob之前,这两个参数都不可用。

$fp = fopen($tmp_name, 'r');
$data = fread($fp, filesize($tmp_name));
fclose($fp);

//Setup watermark destination
$new_watermarked_image_name = "watermark.jpg";

// Create image resources
$image = imagecreatefromstring($data); 
$watermark = imagecreatefrompng('images/watermark_large.png');
$copyright = imagecreatefrompng('images/copyright.png');

// Merge image resource s
$image = overlay_watermark_full_size($image, $watermark);  
$image = overlay_watermark_lower_right($image, $copyright);
imagejpeg($image, $new_watermarked_image_name, 100);

//put original image
$AzureStorageBlob->putBlob("uploads", "name", $tmp_name);
//put watermarked image
$AzureStorageBlob->putBlobData("uploads", "name", ?); // ? needs to be data
Run Code Online (Sandbox Code Playgroud)

php upload azure

3
推荐指数
1
解决办法
2726
查看次数

FullCalendar事件文字颜色变化

我将className添加fc-selected到任何选定的日期,以解决该选定单元格的背景颜色更改。我以为自己没有居所,只需要更改color下一个文本,就在以后才意识到日期事件不在日期单元中而是绝对位于日期单元之外时,我强行去除了几束头发。如何在日历中的选定日期定位事件的DOM?

基本上,日期单元格的背景颜色在选择时变为深红色,我需要标题文本临时更改为白色。

fullcalendar

3
推荐指数
1
解决办法
1万
查看次数

正则表达式在Atom或Sublime中找到用乘数替换

我想使用Atom或Sublime(最好是Atom)中的regex查找/替换函数,将所有出现的特定数值集替换为其各自的标量倍数。

例如,转换

headerContainer: {
    fontSize:'1em',
    padding: '1.5rem',
},
Run Code Online (Sandbox Code Playgroud)

headerContainer: {
    fontSize: 16,
    padding: 24,
},
Run Code Online (Sandbox Code Playgroud)

我的正则表达式发现:

(')([\d.]+)r?em(')
Run Code Online (Sandbox Code Playgroud)

我的正则表达式替换可能性:

$2 \* 16
Run Code Online (Sandbox Code Playgroud)

regex sublimetext3 atom-editor

1
推荐指数
1
解决办法
160
查看次数