刚刚阅读:https : //reactjs.org/docs/react-api.html#reactpurecomponent
并试图找出什么时候函数不会返回纯的东西?
如果你给一个组件相同的道具/状态,那么它肯定会返回相同的结果吗?
我使用精彩的json-server作为我的应用程序的后端,它对于访问自定义端点以检索一些数据非常有用.但如果它允许我进行计算/表达以便我也可以模仿后端行为,那将会是非常有用的.
以此数据结构为例
{
"products": [
{
"name": "football",
"id": "SPO-001",
"category": "sport",
"price": 40,
"couponApplied": "false",
"coupons": [
"daw124qdw",
"a1212cxn"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想用某种方式说些什么 "discountPrice": couponApplied ? price * couponDiscount
那只是我的伪编码.但我想做点什么我可以动态计算价格.或者当我提出请求时,它进行计算并返回计算数据(如后端应用程序)
我知道我可以提出请求,申请优惠券并提供新价格.甚至提出要求并更改价格.但这都是客户端完成的.有没有办法用json或json-server或任何其他解决方案来做到这一点.如果这有道理?
我想指定该函数将对象数组作为参数,但是我没有为该对象定义特定类型(某种“匿名类型”)
bagTotal = (products) => {
// function does stuff
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以这样做:
bagTotal = (products: any[]) => {
// function does stuff
}
Run Code Online (Sandbox Code Playgroud)
但这比我想要的要轻松一些:严格限制我的打字稿。
products 是一组外观相同的对象,就像所有对象都有名称,价格,描述一样。
我该怎么宣布呢?
我想做类似的事情
bagTotal = (products: [{name: string, price: number, description: string}]) => {
// function does stuff
}
Run Code Online (Sandbox Code Playgroud)
但这是不对的。我该如何声明?
我有一个我想转换为使用打字稿的React应用
但出现以下错误: InvalidCharacterError: Failed to execute 'createElement' on 'Document': The tag name provided ('/static/media/index.c6592bb6.ts') is not a valid name.
这个错误甚至意味着什么?看起来好像不喜欢打字稿扩展名
任何想法如何解决?
我从 lambda 收到此错误: errorType":"Runtime.UnhandledPromiseRejection","errorMessage":"Error: Unable to stringify response body
我正在尝试从 s3 中的上传触发我的 lambda(这部分正在工作),然后应该将一些内容发布到 dynamoDB
这是我的 lambda 完整版
var AWS = require('aws-sdk');
var S3 = require('aws-sdk/clients/s3');
const s3 = new AWS.S3()
var DynamoDB = new AWS.DynamoDB.DocumentClient();
exports.handler = async (event) => {
// TODO implement
var bucket = event['Records'][0]['s3']['bucket']['name']
var json_file_name = event['Records'][0]['s3']['object']['key']
var params = {
Bucket: bucket,
Key: json_file_name
};
const data = await s3.getObject(params).promise();
const dataToDb = data.Body.toString('utf-8');
console.log(dataToDb, 'TESTING ====')
var dbparams = {
TableName: "MY-TABLE-NAME",
Item: …Run Code Online (Sandbox Code Playgroud) 我有一个基于某些道具的组件,我希望能够在悬停时更改背景。但基于其他道具,悬停应该什么都不做。这可能吗?
export const Container = styled.div`
&:hover {
background: ${({ shouldHover }) => shouldHover ? 'red' : '' };
}
`
Run Code Online (Sandbox Code Playgroud)
但是这不起作用。任何建议如何做到这一点?
我似乎找不到太多/任何有关我要实现的非常简单的文档的文档
我有一个下拉列表display: none。当我单击一个复选框时,它就是display: block
我要声明的所有内容,当我单击该复选框时,它会显示下拉列表
expect(getByLabelText('Locale')).toHaveStyle(`
display: none;
`)
getByLabelText('Locale').checked = true
expect(getByLabelText('Locale')).toHaveStyle(`
display: block;
`)
Run Code Online (Sandbox Code Playgroud)
该代码按预期工作,但测试在第二个Expect块上失败: display: none
断言的正确方法是什么?
当我单击复选框时,它将更新对象中的2个属性,true代码中的属性也是如此。当我手动传递这些属性时,测试仍然会失败,但首先会失败。
我觉得我需要做一些类似的事情 setProps
我现在已经尝试使用renderWithRedux它,但是它似乎无法正确触发我的动作创建者?
是fireEvent.click(queryByTestId('LocaleCheckbox'))尝试和更新复选框的最好的事情?
所以如果我有这个
const MyView = styled.View`
background: green;
color: red;
`
Run Code Online (Sandbox Code Playgroud)
我有
<MyView>
<Text> Hello </Text>
</MyView>
Run Code Online (Sandbox Code Playgroud)
文字不是红色的
所以我尝试了
const MyView = styled.View`
background: green;
& > Text { color: red; }
`
Run Code Online (Sandbox Code Playgroud)
你可以在 React 中使用普通的样式组件来做到这一点,但是文本仍然不是红色的
我该如何实现这一目标?
我知道我能做到
const StyledText = styled.Text`
color: red;
`
Run Code Online (Sandbox Code Playgroud)
进而
<MyView>
<StyledText> Hello </StyledText>
</MyView>
Run Code Online (Sandbox Code Playgroud)
但如果可以的话我想避免这种情况。是否可以访问 RN 中的 Text 子元素?
我知道在 Elixir 中我可以使用随机变量启动一个模块,如下所示:
defmodule MyMod do
@word = "test"
end
Run Code Online (Sandbox Code Playgroud)
但是是否可以使用类似的随机单词来启动此模块
defmodule MyMod do
@words = ["test", "hello", "bye"]
@word = @words[1]
end
Run Code Online (Sandbox Code Playgroud)
或者甚至比这更随机,并且有一个在初始化时被调用的函数,并且有一些更好的随机逻辑来确定起始词?
const my_arr = [
{id: 1, arr: [{subId: 1, value: 1}],
{id: 2, arr: [{subId: 2, value: 2}],
{id: 3, arr: [{subId: 3, value: 1}],
]
Run Code Online (Sandbox Code Playgroud)
如何映射该数组my_arr,然后映射arr以返回一个数组,如下所示:
[
{subId: 1, value: 1},
{subId: 3, value: 1},
]
Run Code Online (Sandbox Code Playgroud)
基本上仅过滤掉值为 1 的位置,然后仅返回该子对象
我试过做
my_arr.map((x) => x.map((y) => y.value === 1 ? y : null))
Run Code Online (Sandbox Code Playgroud) reactjs ×7
javascript ×6
typescript ×2
amazon-s3 ×1
arrays ×1
aws-lambda ×1
components ×1
elixir ×1
filtering ×1
json ×1
json-server ×1
node.js ×1
react-native ×1